Registro delle modifiche

Novità in Valkiria

Generato dalla cronologia pubblica dei commit: funzionalità e correzioni, raggruppate per mese, ultimi sei mesi.

  1. novembre 2026

    Nuovo 40 · Risolto 40
    • Nuovowhite-labelagency team members see the agency's clients in Client portal (manager manages access, viewer opens the portal); portal hides redacted spend instead of showing 0; human platform names in portal and monthly report
    • Nuovofiltersanalytics and report platform choices come from the platforms in use
    • Nuovofiltersevery platform with campaigns on the dashboard type filter; LinkedIn and Reddit in analytics and reports
    • Nuovochatcampaigns of every connected platform, as on the Campaigns screen
    • NuovotgVillReach as the raised centre tab of the Mini App
    • Nuovoanalyticsseveral ad accounts at once on the Analytics page
    • Nuovocampaignsshared searchable multi-select for ad accounts and platforms
    • Nuovotgsearch and multi-select ad accounts and platforms in the Mini App
    • Nuovofiltersproject on synced creatives (by ad account) and finance operations (by campaign)
    • Nuovoprojectslink and unlink connected ad accounts on the project page
    • Nuovotelegram-adsfilter bar on drafts — project, status, search, period by creation day
    • Nuovocampaign-careperiod and project on the list and its counts, applied by the server
    • Nuovodashboardtiles for the chosen period and the header project
    • Nuovotgday-by-day tooltip and metric switch on the Mini App home chart
    • Nuovoissue short-lived sandbox partner keys through authenticated admin API
    • Nuovofilterstype and period on the Google account campaigns table; period on Telegram ad statistics
    • Nuovosmmcalendar and post analytics follow the header project
    • Nuovofiltersapprovals queue follows the client filter, history the period; client pages by status; synced creatives by period
    • NuovoseoSEO project choice is the header project
    • Nuovoanalyticsevery tab follows the page filters or says it is all-time; status filter matches provider wording
    • Nuovofiltersfinance analytics, spending chart and value ledger follow the page period
    • Nuovofiltersplatform top tiles follow the shared period
    • NuovoanalyticsReddit and Telegram daily facts in the period report
    • Nuovofiltersone period across campaigns, reports, analytics, finance and lead quality; creative tiles follow filters
    • Nuovofiltersproject filter and wrapping filter bar on every ad account list
    • Nuovofiltersproject, period and campaign type on every ad campaign list; header project selector works again
    • Nuovoadd private business-scoped CRM image workflows
    • Nuovorecord isolated closed-period partner accounting
    • Nuovoexpose isolated versioned partner pricing quotes
    • Nuovoadd exact reusable partner pricing models
    • Nuovoadd isolated managed-account planning for CRM partners
    • Nuovoexpose documented CRM partner sandbox API
    • Nuovodeliver signed CRM partner webhooks reliably
    • Nuovoadd isolated CRM partner sandbox foundation
    • Nuovomessengerthe mobile app opens from WhatsApp, Messenger and Viber by a one-time sign-in link; each bot uses its channel's own buttons; admins see what every channel still needs
    • NuovouiVillReach chat keeps one toolbar row above the conversation (steps, expert tools, prompt hints, build drafts) so the panel takes most of the screen
    • Nuovoevent-offerattendee list with raffle for the owner, follow-up messages, fixed discount on the plans page
    • NuovotgMini App works as one app — search across sections, campaigns, ad accounts, projects and alerts from every screen; Home shows period numbers with change against the previous period and a clicks chart, by platform; campaign list filters by ad account and sorts from a bottom sheet with removable chips; approvals and alerts are searchable; a campaign links to its ad account, approvals and analytics; headers never widen the page; long names and badges wrap on 320px
    • Nuovotgsections inside the Mini App open on their data — one-line headers and sideways action strips, compact number tiles, folded filters and explanations, campaign and account cards instead of 1180px tables, sticky first column in remaining tables, no tours or video guides, date picker fits 320px; Italian presets and plan-meter strings; Agency OS badges wrap
    • NuovouiVillReach chat fills the screen (compact header, panel ends at the screen edge, chat list beside it only from 1280px); campaigns and ad accounts list running items first by default
    • Risoltotgforecast counters keep whole words on a phone — decorative icon tiles left out in the Mini App
    • Risoltotgdata hub counter labels keep whole words on a phone — the decorative icon is left out in the Mini App
    • Risoltoone Google campaign id per customer; share page speaks the reader's language
    • Risoltotgadvertising and analytics sections open on their data in the Mini App — rule, scenario, report-guide, clone-queue and data-hub explanations fold into one line; filters fold on budget control, external changes, campaign care, creatives and attribution; external changes show cards instead of a seven-column table; creative actions in one sideways strip; data hub and creative counters as compact tiles
    • Risoltosharea password-protected report link shows the password form, not «link unavailable»
    • Risoltotg«All» campaigns leaves out removed ones, as the web list does
    • Risoltowhite-labellong multi-currency spend wraps inside the portal tile on phones
    • Risoltotgthe background-sync badge on Users no longer covers the list in the Mini App
    • Risoltowhite-labelportal trend chart reads the same daily metrics store as the tiles (it stayed empty for synced accounts)
    • Risoltowhite-labellive portal tiles read period totals from the daily metrics store (provider sync first, as the monthly builder and pacing), per currency; breakdown by ad platform; neutral wallet icon for spend
    • Risoltocampaignsspend and CPC sort within a currency instead of ranking UAH against EUR
    • Risoltotguser refresh controls fold into one line, e-commerce numbers two per row and setup note two lines, notification export buttons wrap, proxy dialog fields one per row below 400px
    • RisoltotgValkiriaOS readiness cards one per row on a phone
    • Risoltotgfinance status values and ad-operations counter labels fit two columns on a phone
    • Risoltotgfinance sync row wraps only inside the Mini App; the regular site keeps its layout
    • Risoltowhite-labelportal spend is shown per real campaign currency (no hard-coded $), per-currency spend is redacted with the rest when costs are hidden
    • Risoltotgtwo-column number tiles on 320px phones use 12px labels that hyphenate instead of splitting long Russian and Ukrainian words
    • Risoltotgadmin users counters use the Mini App number tiles
    • Risoltotgsections fit the Mini App at 320–768 — SMM post status and title wrap whole, users/notification/proxy numbers two per row without big icons, user role badges stay on one line, finance status values fit, AI provider rows put the controls on a second line, ValkiriaOS and system manual cards move the status under the title, ad-provider mode cards one per row, guide tiles smaller; German SEO & AIO title spaced
    • Risoltotgstatus badges wrap between words, never letter by letter; six tab labels fit 320px in every language (shorter Russian, Ukrainian, Czech, Slovak, Italian, French and Polish labels, 10px below 400px)
    • Risoltowhite-labelagency-client buttons stack on phones; sk 'Otvoriť portál'
    • RisoltotgSEO toolkit title fits 320px and the data-sources note folds to two lines in the Mini App
    • Risoltocarebudget moves state today's budgets and step at most +50%; market API status reads no forbidden tables
    • RisoltouiMeta notification history no longer crashes; leaving a crashed page clears the error screen
    • Risoltowhite-labelthe portal opens for the agency owner and team members (/portal/me lists clients by the same access rule as the API)
    • Risoltochata Telegram ad text check with a link keeps its tools instead of being isolated as a site audit
    • Risoltoi18nclient portal wording in cs/pl/sk/de/es/fr (greeting, spend, published, delivered, delivery history, AI recommendations)
    • Risoltowhite-labelreport delivery log no longer keeps a copy of the guest link
    • Risoltogoogle-auditread every GAQL page so large cabinets are not audited on a truncated first page
    • RisoltotgContent/Business/Admin sections fit the Mini App — SEO quick actions are one row each (40px icon, title, caption, inline MULTI/PRO badge, same border), system-log and moderation numbers two per row, Users tabs scroll sideways, AI-providers note hidden, finance badge never splits
    • Risoltotgone Back button — the Telegram header's own when it exists, ours only in chats without it; VillReach listed once (it is the centre tab); one style for every section inside the Mini App: one type scale, card padding and 40px icon tiles, no gradient fills, glows, coloured borders or hover lifts, tappable tiles one per row on phones (SEO quick actions no longer split words), tab labels on one line
    • Risoltoevent-offerthe raffle winner's year of Pro stays purchasable on the plans page
    • Risoltodashboardrestore the Campaign type import dropped with the per-platform header colours
    • Risoltochatapproving a recommendation from the chat needs a second, explicit confirmation
    • Risoltoevent-offerfree conference Pro carries the trial AI cap; the raffle prize is full Pro; no offer after the first payment
    • Risoltochatdata questions always read their tool before the model answers
    • Risoltotgthe centre tab is named VillReach in every language (the key was missing everywhere) and the VillReach page inside the Mini App opens the Mini App chat, whose composer sits above the tab bar
    • Risoltoevent-offerthe events section describes every conference, not Cyprus Valley only
    • Risoltochatname the SMM, SEO and Telegram policy tools the model must call
    • Risoltochatcampaign counts come from the tool, not from the model counting a sample
  2. ottobre 2026

    Nuovo 40 · Risolto 40
    • Nuovoexpose trusted local support stage diagnostics
    • Nuovoseoadd systematic multilingual typo discovery tooling
    • Nuovoseocover cross-language brand spelling variations
    • Nuovoseoestablish multilingual brand identity and query research
    • Nuovochatcopy individual generated code blocks
    • NuovosmmMeta comment moderation and on-demand insights for App Review
    • Nuovoground isolated website audits in safe HTML snapshots
    • Nuovorebuild the public audit journey and explicit onboarding
    • Nuovolandingfree ad-account audit funnel, public copy fixes, user suspension
    • Nuovoadd owner-scoped article generation diagnostics
    • Nuovomake recurring client and project growth plans production-ready
    • Nuovoadd multilingual Valkiria article promotion strategy
    • Nuovogrowth-analystfunctions API for run/list/detail/act + connect hooks
    • Nuovogrowth-analystautonomous weekly/monthly growth plans with claim-locked scheduler
    • Nuovogrowth-analystMiroFish sidecar adapter for optional plan simulations
    • Nuovodashboard'Plan of the week' Growth Analyst widget
    • Nuovogrowth-analystpage, plan detail view, navigation, i18n
    • Nuovochatrestore local conversations and drafts for 30 days
    • Nuovochatadd reviewed local ZIP downloads to VillReach
    • Nuovozipadd bounded local Blob archive packaging
    • Nuovochatground ZIP logo colors in verified image pixels
    • Nuovostoragemeasure palettes from bounded owned image bytes
    • Nuovointegrate SEO marketing reports into campaign care
    • Nuovoadd authorized Search Console marketing analysis
    • Nuovoadd marketing analysis to campaign care
    • Nuovoadd evidence-based marketing account analysis
    • Nuovoseoown Google sources - Search Console history, Keyword Planner ideas, clustering by meaning
    • Nuovoenforce final article quality across publication paths
    • NuovoseoGoogle Search Console ranks and platform Keyword Planner volumes
    • Nuovoseoown SEO data layer around paid providers — shared SERP/volume cache, breaker, daily budget, stale-but-honest fallback
    • NuovosupportVala comes alive — canvas portrait that breathes, blinks, follows the pointer and speaks
    • Nuovoseospend purchased SEO top-up packs after the plan allowance
    • Nuovoseohonest, enforced SEO allowances per plan with a Plan & usage panel
    • Nuovobillingone-time top-up credit packs on Stripe; reverse trial 14 days
    • Nuovoguidesvoiced video guides and written steps in all 9 languages
    • Nuovodesign-studioEscape closes the editor, asking first when canvas work is unsaved
    • Nuovoonboardingthe website check is the first screen for new users
    • NuovosupportVala consults on the customer's own account, takes requests, speaks nine languages natively
    • Nuovobillingreal AI cost ledger, admin AI economics, refunds for failed deep analysis, cost-weighted video
    • Nuovobillingclose trial anti-abuse gaps — OAuth device carry, fingerprint, VPN/hosting/Tor, signup limit, background AI cap
    • Risoltoqualify campaign snapshots with an unknown reporting period
    • Risoltoformat all nine interface languages explicitly
    • Risoltokeep actual campaign metric values inside mobile cards
    • Risoltoscope support account context to explicit consultation
    • Risoltokeep segment identity guards compatible with ES2020
    • Risoltopreserve campaign currencies on the actual statistics route
    • Risoltoremove fabricated campaign demographic segment metrics
    • Risoltopreserve unknown campaign conversion summaries
    • Risoltoalign campaign statistics with source-currency metric cards
    • Risoltokeep automation rule controls inside mobile cards
    • Risoltoqualify configured local models without enabling reserves
    • Risoltopreserve source currencies in campaign metric cards
    • Risoltovalidate image URL control characters without lint violations
    • Risoltoenforce guest checkout item limit in route schema
    • Risoltobound guest checkout parsing and pin patched server Zod
    • Risoltoalign creative fatigue severity and summaries with scores
    • Risoltoprevent synthetic storefront catalog payment flows
    • Risoltosupport text tracking identifiers in omnichannel evidence
    • Risoltoexport qualified omnichannel evidence consistently
    • Risoltorefresh campaign settings after confirmed budget saves
    • Risoltopreserve source evidence across omnichannel tabs
    • Risoltoload email log navigation copy in every supported locale
    • Risoltodistinguish unavailable email tracking from measured zero
    • Risoltonormalize storefront product images and recover failed loads
    • Risoltobind campaign care reads and actions to current context
    • Risoltopaginate campaign care and automation rule cards
    • Risoltopreserve native event evidence in omnichannel overview
    • Risoltoisolate campaign settings drafts by record identity
    • Risoltoreject malformed daily budget save receipts
    • Risoltopreserve campaign currencies and confirm daily budget saves
    • Risoltokeep recommendation trust low when evidence loading fails
    • Risoltoreport unavailable omnichannel data as an RPC error
    • Risoltoisolate Meta entity writes and redact resolver credentials
    • Risoltorequire measured tracking evidence before healthy trust
    • Risoltochatcontain assigned project and client labels
    • Risoltochatground screenshot requests in text-only capabilities
    • Risoltoenforce answer admission for interactive automation explanations
    • Risoltoadmit legacy automation explanations through an owned profile
    • Risoltosmmask Meta for the insights metrics it still serves
    • Risoltoreject unexecuted MCP and generic visual-reading claims
  3. settembre 2026

    Nuovo 40 · Risolto 40
    • Nuovoadswhat the system found in a cabinet has a screen
    • Nuovoadsnew copy is shown before it is published, and what was shown is published
    • Nuovoadsthe system closes what its own audit finds in a campaign it built
    • Nuovoadswhat was done by hand in a campaign switch, done by the system
    • Nuovoadsa query the client ordered by name survives the volume filter
    • Nuovoadsthe review covers Meta cabinets too, not only Google
    • Nuovoadsthe review runs itself every 36 hours, per cabinet
    • Nuovoadsthe account review as a model, a document and a calibration
    • Nuovoadsread where the clicks land, because that is where the money is lost
    • Nuovofinanceexpose opt-in exact ledger decimal projection
    • Nuovofinanceconnect cash flow to timezone-aware periods
    • Nuovofinancefilter native cash flow by exact interval
    • Nuovofinanceexpose owned native-currency cash-flow evidence
    • Nuovoadsthe system works out who gives up budget, not just who is short
    • Nuovoadsevery finding becomes a recommendation the system can carry out on approval
    • Nuovoexpose explicit LinkedIn report periods
    • Nuovometasave owned pixel audience drafts atomically
    • Nuovometapersist owned draft creation receipts atomically
    • Nuovochatinclude canonical provider analytics evidence
    • Nuovomcpexpose canonical provider analytics report
    • Nuovolinkedindispatch durable campaign pause over POST
    • Nuovolinkedinpersist pause intents and receipts
    • Nuovolinkedinadd verified pause executor foundation
    • Nuovobillingpreserve audited seller configuration on new invoices
    • Nuovobillingexpose verified owner-only Stripe invoice documents
    • Nuovobillingadd protected seller and document settings
    • Nuovoreportsrequire destination-bound encrypted webhook keys
    • Nuovoreportsdefine authenticated webhook signature contract
    • Nuovoreportspersist owned webhook delivery receipts
    • Nuovoreportsbound and pin webhook HTTPS transport
    • Nuovoreportsdeliver owned report attachments through tracked email
    • Nuovoreportsgenerate server PDF and XLSX attachments
    • Nuovoreportsshare public projection for server text attachments
    • Nuovoemailsupport bounded in-memory report attachments
    • Nuovoreportsclaim delivery jobs without automatic replay
    • Nuovoreportsadd owner-bound delivery outbox persistence
    • Nuovoreportslocalize saved PDF and XLSX exports
    • Nuovoreportsexport paginated PDF evidence
    • Nuovoreportsdownload saved evidence as XLSX
    • Nuovoreportsdownload saved JSON evidence
    • Risoltoadsa cabinet the system cannot read says so, and a Meta change is made as the right user
    • Risoltoadsa top-up reaches the ad in one request, and a Meta finding carries its ids
    • Risoltoadsevery client is reviewed, and a change is checked with the platform before it is made
    • Risoltoadsa preview opened for the first time is shown, not reported as empty
    • Risoltoadsa market nobody measured is not a market of zero
    • Risoltoadsa campaign a day old is not told what it leaves unspent in a week
    • Risoltoadsevery conclusion of a review reaches the queue, in the reader's language
    • Risoltoadsa word spelled with the other language's stem is caught by the rules
    • Risoltoadswhat a model wrote is proofread, and a keyword gone from Google is gone here
    • Risoltoadsa cabinet is answered for only to its owner, and every recommendation can act
    • Risoltoadsa model that refused is reported as having refused
    • Risoltoadsa new ad keeps what its group is about, and a new campaign is not measured over a week
    • Risoltoadsa recommendation lives as long as its finding, and prepared copy is kept
    • Risoltoadsa finding carries the ids a change needs, and a new campaign is not an idle one
    • Risoltoadschoosing keywords reads a negative as an intent, in every form
    • Risoltoadsa campaign name is a headline only when it fits, and an unpriced group bids like its siblings
    • Risoltoadsa deployment snapshot too big to store recorded nothing
    • Risoltoadsan idle cabinet is reported as unmeasured, not as failing
    • Risoltoadsan autopilot run replaces its own picture instead of piling on it
    • Risoltoadsa cabinet that delivered nothing still gets a review
    • Risoltoadsasking for one cabinet by name means now
    • Risoltoadsthe client review reads as Ukrainian all the way down
    • Risoltoadsa review of one named cabinet must reach the database
    • Risoltoadstell a client who installed a counter what is actually missing
    • Risoltometarequire provider evidence for freshness QA
    • Risoltogoogle-adskeep OAuth refresh client credentials paired
    • Risoltodiagnosticsdistinguish Google refresh failure stages
    • Risoltogoogle-adsrefresh expired account credentials before sync
    • Risoltoadspreserve explicit Google copy languages
    • Risoltocampaignsload lightweight summaries for campaign list
    • Risoltorecommendationsverify internal execution before monitor rollback
    • Risoltocheckoutisolate shipping and tax quote ownership
    • Risoltocheckoutfence responses after session changes
    • Risoltocheckoutrequire verified guest payment recovery
    • Risoltocartkeep mobile items and checkout readable
    • Risoltocheckoutpreserve cart additions after payment
    • Risoltocheckoutresume guest payments through verified recovery
    • Risoltopaymentsrecover recorded guest intents without duplicate orders
    • Risoltocheckoutissue private guest recovery capabilities
    • Risoltopaymentspersist guest initialization request before provider call
  4. agosto 2026

    Nuovo 40 · Risolto 40
    • Nuovoaction-planmerge account recommendations into real-plan diagnosis
    • Nuovoaction-planunified visual "План действий" deliverable (MI + analytics)
    • Nuovobannersstronger art-direction + anti-hallucination anatomy directives
    • Nuovodesign-studioexpand preset gallery to 78 (add 10 high-demand niches)
    • Nuovodesign-studio48 quality-tested banner presets with preview gallery
    • Nuovoomnirankcanonical SEO domain = valkiria.pro + blog routes on valkiria.pro nginx
    • Nuovobannerskeyless Pollinations fallback + direct free Gemini image provider
    • Nuovoomnirankper-tenant public blog by domain (Host allowlist)
    • Nuovodesign-studiofree Together FLUX provider + attach-to-campaign in Lite
    • Nuovodesign-studioLite provider-readiness warning + client MI context
    • Nuovoomniranklive sanitized HTML preview in BlogManager
    • Nuovoomnirank10 — generic durable job queue + dead-letter (§05 §3)
    • Nuovodemosuse REAL system screenshots as demo backing plates
    • NuovodemosRemotion onboarding demos — flagship + per-module, 5 locales
    • Nuovosmmadd Google Business Profile posting (Local Posts + business.manage OAuth)
    • Nuovoomnirank11 — BlogManager live AIO/AEO/GEO/E-E-A-T score button
    • Nuovoomnirank11 — per-tenant public blog scoping (OMNIRANK_BLOG_OWNER_ID)
    • Nuovoomnirank11 — campaign admin UI (/admin/campaigns)
    • Nuovoomnirank9d — Google Indexing API + GSC clients (thin)
    • Nuovoomnirank10 (part) — prompt override CRUD (DB-backed) + observability endpoints
    • Nuovoomnirank9e — KeywordResearchService merge core (provenance)
    • Nuovoomnirank9b — sitemap/RSS/llms generation-counter cache
    • Nuovodesign-studioLite/Pro modes + one-click multilingual banner pack
    • Nuovoomnirank9c — ContentHeadingGuard (in-content H1 -> H2)
    • Nuovoomnirank9f — TextMetrics + Flesch readability wired into scoring
    • Nuovoomnirank8e — SeoCompletenessGate in the guard chain (§4.3)
    • Nuovoomnirank8c — PAA wired into the campaign flow
    • Nuovoomnirankauto-index on publish (IndexNow) + keyfile serving
    • NuovoomnirankPhase 7a — engine wiring (provider clients, engine factory, Content Studio route, job ledger)
    • NuovoomnirankPhase 6 — indexing (SSRF guard, IndexNow, sitewide submit)
    • NuovoomnirankPhase 5c — blog frontend (DB-driven list, post page, admin manager)
    • NuovoomnirankPhase 5b — blog backend live (content store, service, routes, mount)
    • NuovoomnirankPhase 5a — SEO surface builders (schema, sitemap, RSS, llms, head, internal links)
    • NuovoomnirankPhase 4c/4d — CampaignRepository seam + orchestrator
    • NuovoomnirankPhase 4a/4b — CommercialIntentPolicy + TopicPlanner
    • NuovoomnirankPhase 3b — LocalPublicationPolicy + AioScoreEngine
    • NuovoomnirankPhase 3a — HumanStyleGuard + LanguageOutputGuard
    • NuovoomnirankPhase 2 — AI engine (registry, routing, resilience onion, telemetry)
    • NuovoomnirankPhase 1 — content data foundation + generalized secret crypto
    • Nuovoemaildelivery + open/click tracking for all outbound mail
    • Risoltocreativescapitalize display names + show ad copy as preview for text creatives
    • Risoltobannersstop rendering hex codes / brand name / stats as image text
    • Risoltobannerstext-free v2 — drop copy/zone naming, force photographic hero
    • Risoltoomniranknginx proxies IndexNow keyfile (/<hexkey>.txt) to Express
    • Risoltoomnirank uiblog/campaign UX defects from QA sweep
    • Risoltoomnirankforce re-plan replaces items (no dup); idempotent finalize related-block
    • RisoltoomnirankAI-engine resilience — empty-after-normalize, telemetry isolation, stream leak, merge seam
    • Risoltoomnirankharden SSR sanitizer + refine SSRF IPv6 classification
    • Risoltobannersenforce text-free image generation (copy goes to overlays)
    • Risoltoomnirankstrip unresolved internal-link placeholders on public render
    • Risoltoomnirankthread the configured provider model into generation (custom providers sent empty model)
    • RisoltoomnirankAI generation was fully broken on prod (URL double-append) + SEO/stream hardening
    • RisoltoomnirankQA sweep — 15+ backend/frontend defects across all layers
    • Risoltoomnirankhuman-approval bridge — autopilot never publishes live without opt-in
    • Risoltodemosdrop stale Lovable poster from flagship hero video
    • Risoltoomnirankmaterialize root SEO files to webroot so nginx stops shadowing them
    • Risoltoi18nadd 6 missing production-audit keys blocking deploy
    • Risoltoomnirankattribute AI spend to campaign/user so budget guard + rate limit work
    • Risoltoomnirankre-apply 9a schema nodes clobbered by a concurrent revert
    • Risoltoqa31user-facing correctness — agent crash, variant-price charge, AI-provider SSRF, fabricated ROI, storefront + i18n
    • Risoltoqa30security hardening — 2FA bypass, path traversal, 6 RPC IDORs, auth re-auth, webhook idempotency, share/realtime leaks
    • Risoltoqa32fail-closed WRITE (INSERT/UPSERT) + profiles PUT write-IDOR
    • Risoltoqa31missing-table 404 guard, pixel-write UUID gate, profiles-scoped team invite
    • Risoltoemailnever emit localhost app URL in production
    • Risoltoqa30bpixel-parent ownership dual-match (fix 500 on conversion child tables)
    • Risoltoqa30fail-closed default for unscoped REST tables + 14 more ownership rules + profiles self-scope
    • Risoltoqa299 verified user-visible defects across finance, crud/rls, MI gate, wizards, shim & analytics
    • Risoltoqa28scope ad-platform tables by account ownership (cross-tenant read) + repoint phantom-column filters
    • Risoltoqa27REST unknown-filter 400 + TikTok delete-all, api-v1 db-context, MCP session auth, daily-brief l10n
    • Risoltomcp/apicampaign performance no longer 500s when called without a date range
    • Risoltoqa26-uistrip traceability suffix in remaining campaign-name display spots
    • Risoltoqa26-uiplan language tabs filter Google RSA ads, not-found log downgrade, i18n tails
    • RisoltoauthQA follow-ups on the 2FA flow
    • Risoltoqa27SEO AI generator + Google Ads ad-group wizard return the array the frontend reads
    • Risoltoconsole-hygieneunconfigured Windsor is a warn, not a red console error on every page
    • Risoltoauthwire password-reset confirm flow + partner welcome-invite script
    • Risoltoqa25-uicampaign card display names, chat markdown, malformed-plan guards, i18n cleanup
    • Risoltoqa25-apiMCP db-context, async-polish safety, autopilot guard, prompt-injection hardening
    • Risoltoqa25shim contract — Meta A/B scaling + TikTok metrics-sync read the handler's real fields
    • Risoltoqa24battribution last-day-dropped + checkout returns error (not false success) on payment-init failure
  5. luglio 2026

    Nuovo 40 · Risolto 40
    • Nuovomarket-intelligenceNewsAPI + Media Cloud social-listening connectors
    • Nuovomerchant-centerfull-catalog description rollout + in-panel "Fix descriptions" button
    • Nuovomerchant-centerlocalized, code-stripped product descriptions (uk/ru/pl)
    • Nuovomerchant-centerregister-gcp action to register the GCP project with the merchant account (Merchant API prerequisite)
    • Nuovomerchant-centerdurable description remediation via Merchant API supplemental data source
    • Nuovomerchant-centerin-system feed remediation groundwork (read + dry-run)
    • NuovolegalGoogle API Services Limited-Use + per-scope disclosure in Privacy
    • Nuovogoogle-adsMerchant Center diagnostics panel in-system + de-SKU pack fix
    • Nuovoseo,metaGoogle-stealth SERP adapter + real Meta targeting search + real A/B scale
    • Nuovoseoreal rank tracking on our own basis — no paid SERP API
    • Nuovomerchant-centerread MC account + product statuses in the system (Content API)
    • Nuovojarvis-chatinject data-reality rules into both chat system prompts
    • Nuovoanalytics-factualityground all analytics numbers — no invented data
    • Nuovoad-qualityban SKU/model codes in ad copy + adult-misflag policy shield
    • Nuovogoogle-adspaired credential-set fallback (dev token + own-project OAuth)
    • Nuovogoogle-adsdeveloper-token fallback pool with persisted quota state
    • Nuovoanabel-uaДА (Франчайзинг Київ) Reach+Remarketing pair + Google quota circuit breaker
    • Nuovogooglemax-fill matrix (RSA 15/4, PMax 15/5/5, RDA 5/5/15) + outlet landing restored
    • Nuovometacustomer-list custom audiences — create + hashed member upload
    • Nuovometamax-fill creative standard, ИМ segment, Audience Network off by default
    • NuovosyncMCC manager persistence, v24 recommendations fix, pixel/audience mirroring, REST wildcard fix
    • NuovoadsShopping campaign pipeline, ad schedules, Meta pixel+audience ops
    • Nuovoadscampaign criteria writes, paused-QA update ops, Meta creative swap
    • Nuovometapaginate meta-list-pages business walk (proxy-safe)
    • Nuovometahinted early-exit page walk to find one brand page cheaply
    • Nuovometameta-list-pages — deterministic page picker for page-backed ads
    • Nuovometaresolve page-backed creatives via Business Manager pages
    • Nuovometaexponential backoff on Meta Graph rate-limit responses
    • Nuovosmmfull media-fidelity posting across all 9 networks
    • Nuovosmmcontent formats (stories/carousel/video) + native post deletion
    • Nuovosmmopt-in enablement for direct publishing (SMM_DIRECT_PUBLISH_ENABLED)
    • Nuovosmmat-rest encryption for social account tokens (opt-in)
    • Nuovosmmpersist composer advanced options + recurring-post generation
    • Nuovomarket-intelligenceDeerFlow Phase 3 — live web-search connector (fills the stub)
    • Nuovoadsdiscover ALL accessible Meta ad accounts (business hierarchy)
    • Nuovomarket-intelligenceDeerFlow Phase 2 — wire agentic research into the pipeline
    • Nuovomarket-intelligenceDeerFlow Phase 1 — sidecar service + compose wiring
    • Nuovoadsdedicated 3-hourly cabinet + access refresh scheduler
    • Nuovosmmphase 6a — retry/backoff/429 for idempotent metrics GETs
    • Nuovosmmphase 5a — best-time from real data, no fabrication
    • Risoltocustomer-analyticsadapt UI to real server contract (RFM crash, CLV zeros, cohort heatmap)
    • Risoltofinanceone canonical transaction-type vocabulary across all balance math
    • Risoltodemoprod hardening — session GUC context, platform check, audience FK
    • Risoltorestcount=exact returns rows AND count (PostgREST semantics)
    • Risoltomerchant-centertypecheck (ds: any for linked field)
    • RisoltometaMetaAdSetWizard referenced undeclared `data` (crashed campaign page)
    • Risoltomerchant-centerresilient supplemental data-source create (Merchant API v1 shape fallback)
    • Risoltomerchant-centeruse Merchant API v1 (v1beta discontinued 2026-02-28)
    • Risoltolegalserve real privacy/terms HTML to crawlers (Google OAuth verification)
    • Risoltogoogle-adsOAuth callback survives an expired browser session
    • Risoltonotifications,metakill notification 429 flood + harden Ad Set creation
    • Risoltogoogle-adstoken pool state reads fresh from env (live-clearable, no stale cache)
    • Risoltometa-uploaderdeleted mirror campaigns no longer block reconciliation
    • Risoltoanabel-uaКР story asset points at real 954 vertical (900x1600), not 949
    • Risoltometaomit subtype/prefill on custom audience create by default
    • Risoltogoogle-adshonor validate flags on ad/keyword/adgroup update-remove ops
    • Risoltoanabel-uaUkrainian-only ad copy, KMS limits, negatives, RSA paths
    • Risoltometafetch ad-image bytes via loopback to bypass edge self-fetch 403
    • Risoltometaupload ad image bytes to adimages instead of a Meta-fetched URL
    • Risoltometaaccount-scoped page lookup; don't cache empty page list
    • Risoltosmmdrop X media.write scope from connect (breaks Free/Basic app auth)
    • Risoltosmmaddress adversarial review findings for formats + native delete
    • Risoltosmmremove fabricated default metrics from client monthly report
    • Risoltometaonly set campaign-level bid strategy when a campaign budget exists
    • Risoltometapin campaign-level bid strategy for non-value objectives
    • Risoltoadsmake manual account/access refresh fire-and-forget
    • Risoltosecurityharden new MI/agent-skills/SMM/storage subsystems from prod verification
    • Risoltomarket-intelligencededupe in-flight deep-analysis across trigger paths
    • Risoltoharden client campaign sync production qa
    • Risoltoenforce explicit client campaign qa selection
    • Risoltobound production chaos qa waits
    • Risoltostabilize production qa deploy gates
    • Risoltoenforce client-agnostic ad workflows
    • Risoltoexpose frontend alias permission repair
    • Risoltostabilize production chaos qa budget
    • Risoltoclassify nonwritable frontend aliases
    • Risoltotolerate blocked external edge health
    • Risoltostabilize production qa gates
    • Risoltoharden production deploy and Valkiria OS admin
    • Risoltoverifyfour defects found by full-stack verification sweep
  6. giugno 2026

    Nuovo 40 · Risolto 40
    • Nuovoexpand intelligence autopilot modules
    • Nuovoadd research intelligence module
    • Nuovosurface ad provider full access readiness
    • Nuovoadd meta tracking diagnostics
    • Nuovomarket-intelligenceintegrate external tools pipeline — crawl4AI, STORM, Stagehand, public APIs + pgvector
    • Nuovomarket-intelligenceadd MI runner bootstrap QA artifact
    • Nuovomarket-intelligenceadd staged rollout backfill controls
    • Nuovomarket-intelligencewire operations notifications
    • Nuovomarket-intelligencesurface run status and evidence
    • Nuovomarket-intelligenceadd ai cost telemetry
    • Nuovomarket-intelligencefeed evidence brief into campaigns
    • Nuovomarket-intelligenceadd source-only ai context
    • Nuovomarket-intelligenceadd evidence ledger builders
    • Nuovomarket-intelligenceadd compatibility writers
    • Nuovomarket-intelligenceprocess queued mi jobs
    • Nuovomarket-intelligencequeue quick query jobs
    • Nuovomarket-intelligencequeue report generation jobs
    • Nuovomarket-intelligenceadd job idempotency enqueue
    • Nuovomarket-intelligenceadd stuck job recovery
    • Nuovomarket-intelligenceadd disabled runner loop
    • Nuovomarket-intelligenceadd job claim rpc
    • Nuovomarket-intelligenceadd sanitized audit events
    • Nuovomarket-intelligenceadd parser sandbox limits
    • Nuovomarket-intelligenceadd raw snapshot metadata builder
    • Nuovomarket-intelligenceguard internal scraper fetches
    • Nuovomarket-intelligenceadd guarded fetch utility
    • Nuovomarket-intelligenceexpose source registry diagnostics
    • Nuovomarket-intelligenceadd source adapter registry
    • Nuovomarket-intelligenceadd execution foundation schema
    • Nuovoenhance ad and market intelligence workflows
    • Nuovoharden ad platform production readiness
    • Nuovoadd activation evidence intake plan
    • Nuovoexpand mcp ad provider surface
    • Nuovoexpand ad provider approval dossiers
    • Nuovoadd professional campaign decision scorecards
    • Nuovoexpand professional ad metrics contract
    • Nuovoship production qa and meta leads
    • Nuovofinalize quture report artifacts and skills governance
    • Nuovoadd source-backed report navigation and translations
    • Nuovoenforce senior campaign audience intelligence
    • Risoltohelpstop tutorial re-render flicker after pressing "Next"
    • Risoltosearchkeep command-dialog placeholder clear of the close button
    • Risoltousersalign row checkboxes as a real table column + fix RU role header
    • Risoltouiresponsive overflow + corrupted notification i18n (QA pass)
    • Risoltokeep legacy settings integrations route authenticated
    • Risoltoreset ad provider status inflight cache
    • Risoltodedupe ad provider status checks
    • Risoltolocalize dashboard onboarding skip
    • Risoltokeep public nav sign-in hover readable
    • Risoltorestore user systemd for production runner
    • Risoltokeep production api launch single owner
    • Risoltoprevent duplicate production api launchers
    • Risoltoretry transient db pool acquisition
    • Risoltoharden production qa deploy gates
    • Risoltoresolve production npm path validation
    • Risoltovalidate npm in production update script
    • Risoltoaccept externally blocked research claims
    • Risoltorequire research retention bootstrap
    • Risoltoadd research intelligence tab translations
    • Risoltoorder market intelligence server migrations
    • Risoltoavoid production qa proxy port collisions
    • Risoltorefresh provider external blocker guidance
    • Risoltopublish frontend alias blocker diagnostics
    • Risoltoharden frontend i18n and provider status refresh
    • Risoltolocalize russian sidebar labels
    • Risoltorepair frontend i18n and provider loading
    • Risoltolocalize meta tracking diagnostics
    • Risoltoguard settings security date formatting
    • Risoltoapply market intelligence schema on api startup
    • Risoltoharden production browser qa routes
    • Risoltoallow runner local release proof fallback
    • Risoltobudget chaos qa transient navigation
    • Risoltoguard chaos qa context creation
    • Risoltobudget chaos qa navigation timeouts
    • Risoltoharden production chaos qa runner
    • Risoltostabilize production qa proxy diagnostics
    • Risoltostrip qa proxy origin for production api
    • Risoltopublish production qa artifacts to public roots
    • Risoltowait for adops registry in production qa
    • Risoltostabilize production browser qa api probes
  7. maggio 2026

    Nuovo 18 · Risolto 40
    • Nuovoharden jarvis campaign workflow
    • Nuovoadd jarvis campaign workflow
    • Nuovoexpose agent provider launch status
    • Nuovoadd agent campaign provider deployment
    • Nuovoadd module skill profiles
    • Nuovowire agent skills into AI runtime
    • Nuovorequire explicit spend enable confirmation
    • Nuovowire google child write mutates
    • Nuovowire meta ads write paths
    • Nuovoadd safe google ads campaign updates
    • Nuovoadd safe google ads campaign create
    • Nuovofinalize ad platform fallback readiness
    • Nuovoadd Google and Meta account OAuth login
    • Nuovoextend OAuth domains for main Valkiria host
    • Nuovosupport main Valkiria OAuth domain
    • Nuovosync Google Ads accessible accounts
    • Nuovoadd Meta app review production test suite
    • Nuovoadd aggregator fallback controls
    • Risoltohonor agent launch status
    • Risoltoreuse existing agent provider campaigns
    • Risoltoconvert agent budgets to provider currency
    • Risoltoprefer branded ad account matches
    • Risoltoresolve shared ad accounts for agent deploy
    • Risoltolog agent ad account resolution
    • Risoltotolerate ad account schema drift
    • Risoltocomplete agent deployment persistence
    • Risoltoserialize provider json payloads
    • Risoltorepair moderation trigger defaults
    • Risoltoset db auth context for requests
    • Risoltoserialize json crud payloads
    • Risoltoadd deterministic agent fallback
    • Risoltoread connected ad account names
    • Risoltoalign conversion queue schema
    • Risoltotolerate missing meta notification settings
    • Risoltohandle mixed id types in data sync QA
    • Risoltolighten header finance balances
    • Risoltorun admin browser smoke with admin auth
    • Risoltoharden frontend webroot deployment
    • Risoltodeploy frontend to ispconfig webroot
    • Risoltoclean stale converted migrations
    • Risoltoaccept modern uuid ids in write resolvers
    • Risoltogate google meta write aliases
    • Risoltopersist google campaigns without conflict constraint
    • Risoltonormalize production write script args
    • Risoltoskip removed google qa candidates
    • Risoltodefault meta adset end time for lifetime budgets
    • Risoltorespect meta campaign budget mode
    • Risoltoinfer meta adset delivery defaults
    • Risoltosync meta campaigns for write flows
    • Risoltoremove google ads campaigns with mutate remove
    • Risoltoguard google ads writes to synced campaigns
    • Risoltostore google ads campaign ids as text
    • Risoltoreuse stored provider tokens for validation
    • Risoltoinclude meta campaign budget sharing flag
    • Risoltopersist meta ad account ids as text
    • Risoltorefresh expired google ads tokens
    • Risoltoreturn setup state for tiktok oauth
    • Risoltorestore superadmin without audit context

Vuoi ricevere notifiche sui nuovi aggiornamenti?

Iscriviti alla nostra newsletter per rimanere informato sulle ultime modifiche.

Trascina per spostare. Alt + tasti freccia spostano il pulsante; Alt + Home ne ripristina la posizione.

Preferenze sui cookie

Usiamo i cookie per migliorare la tua esperienza. I cookie essenziali sono sempre attivi. Puoi gestire i cookie facoltativi qui sotto.

Essenziale
Analitica
Marketing
Terze parti