The record
What shipped, and when
Every release, dated, with the pull request behind each line. Generated at build from the repository's own changelog, so the page cannot drift from what was merged.
These lines record what was merged into Tempio and when. They are a fact about the repository, not a description of what your account can do today: Tempio connects Meta, Google Ads and TikTok, and each capability's own page states whether it has shipped or is still on the roadmap. A line below may name work that is not yet something you can use, and the page for that work is the one that says so.
v0.21.0
Features
- crm
K4 step k4j, the CRM close-out: the old notes and follow-up date dropped behind a guard, the tempio-crm skill, and the track review's fixes #342
v0.20.0
Features
- admin
CRM pipelines in the staff console, step k4g: boards and tables of entries under saved views, cards that move by drag, keyboard and dialog, the board's settings, and the pipeline's own settings #337
- admin
CRM record pages in the staff console, step k4h: an Overview, the record's pipelines, notes in a window, tasks, comment threads and favorites #338
- admin
CRM spec 2 step fc1, find clients: a do-not-contact list kept as hashes that every write and send obeys, where a person's details came from, and an agent held to business details #339
- admin
the CRM's objects and fields (K4 step k4i): /settings/objects, custom objects, every object's attributes, one create-attribute dialog for every type with colours, defaults and display settings, key changes, and relationships as two sides #323
- ui
the agent on the neutral look, lane P10: a 650 column, tool calls in one line, records as chips, the change request as Attio's card, the chat's title and actions in the top bar, the dock's chat and the agent's activity #330
- ui
the app on the neutral look, lane P5: the Planner, its Gantt, list and board, the plan pages on the record layout, names before figures #335
- ui
the app on the neutral look, lane P7: the media tabs in the top bar, uploads through a drop zone, assets, presets and stills as board cards, and the brand kit in a settings column #321
- ui
the app on the neutral look, lane P8: connections and onboarding #331
- ui
the app on the neutral look, lane P9: settings as Attio's settings mode, lists as tables, editors as the form dialog, figures in stat cards #322
Fixes
- admin
the board and Create view tests wait for what they assert, so a slow runner can't race them #340
- ads
Meta syncs pace on the ad account's usage header and share one budget per ad account #318
- ui
the agent's errors name no vendor, the review note says what Approve does, and a connected card has no dead Connect button #333
v0.19.0
Features
- auth
the auth pages' panel drawn as a page, the auth banner and the link style (lane P11's shared parts) #302
- crm
the CRM tables (K4 step k4f): every object on a table in the console, edited in place, with saved views, filters, bulk actions, import and ⌘K #304
- ui
each app's own coloured mark as its favicon #315
- ui
Home on the neutral look, lane P2: the KPI tiles as highlight cards, the chart cards, the channel table on DataTable, the account brief and the ask box #306
- ui
the app on the neutral look, lane P4: Review as rows, a change's own record page, and the client sign-off on the panel page #312
- ui
the app's shell on the neutral look, lane P1: Attio's sidebar and top bar, the toolbar binding, the command menu, the dock's frame and the error screens #299
- ui
the campaigns pages on the neutral look, lane P3: the campaigns table on DataTable, New campaign as a dialog over the list, and record pages for a campaign and an ad group #307
- ui
the sign-in, consent and public pages on the neutral look, lane P11: the dialog panel as a page, the onboarding frame with the app sketch, and refusals that say what to do #305
v0.18.0
Features
- ads
the library feed's contract: featured brands, four search filters and the featured order, the site-reader declarations, migration 0036 #283
- auth
invite-only sign-up — one gate for every door, console invites, the "You're in" mail, and SIGNUP_MODE for launch #267
- crm
the CRM's agent tools (K4 step k4e): eighteen tools over MCP with staff keys, and Settings → Keys #287
- crm
the CRM's services (K4 step k4c): objects and fields, records of every object with assert and the filter tree, references, merge, pipelines, views, notes and tasks #286
- db
the CRM's records (K4 step k4a): eleven crm_ tables and eight contact columns, every contact linked to a company by its email domain, a workspace linked to its creator's company, crm:backfill #280
- db
the CRM's second contract (K4 step k4b): an object registry and custom records, record references, task links, a prospect stage, and a person with no email address yet #285
- infra
shots pairs take the teardown's modeless screens and can shoot a page signed out #292
- ui
an activity item can link to its page, a record tab can wear its tile, a filter chip can open a menu, and a form dialog can be a page #293
- ui
BrandMarkMotion, the mark with its treads dropping into place #279
- ui
one client wrapper for a record's tabs, its links keeping the address parameters a page names #295
- ui
R5 lane B2, the app shell: a purple sidebar panel in both modes, the page as a card, four navigation groups, search and the agent launcher in the chrome #259
- ui
R5 lane B4, Task 3: the other eight templates on the v3 blocks, alternative to safe-zone, each switching on its entry fields, with the placement preview naming one platform once #273
- ui
R5 lane B4, the page templates on Attio's blocks: pillar, channel, compare and integration re-laid on FeatureTabs, TwoUp and DarkGrid, with a static page per gallery stage #271
- ui
the app on the neutral look, lane P0: the theme switched, the schemes gone, the primitives fitted, tiles, icons and no arrival motion #291
- ui
the app on the shadcnblocks Admin Kit and the home page on Meridian: the shell, colour schemes with a picker, the agent panel, the planner's timeline, list and board, Next 16.4 and React 19.3, one staging branch per lane #276
- ui
the CRM's kit parts and the neutral look (K4 step k4d): a data table with a cell cursor, views, bulk actions, a board, record parts, a rich note editor with mentions, a task composer, the console's new shell, all drawn to Attio's measured feel #289
- ui
the planner at Asana's feel: names in bars, six zooms, bars lifted and placed by hand, fifteen lane colours, milestones and dependencies, key dates for five regions #277
- web
R5 lane B3, the home page on Attio's section system: seven sections, the scenario hero, the placement preview, light-first #258
- web
R5 lane B9, the hero in three dimensions: a black band with a live 3D phone, the edit landing on a faithful Facebook feed post in red and green, and the faithful chrome seam in the placement preview #274
- web
the footer on shadcnblocks' Footer 3, dark with the lockup at nav size, and the home page stops at the walkthrough #298
- web
the home page's hero on a capture of the app with the AI clients beside it, the nav as a hanging tab with the hollow mark, and a transparent icon set for all four apps #282
- web
the walkthrough on a 3D laptop: a glTF model on a podium in a cyclorama, a pinned stage with the push-in, the opening and the screen, the app's own screens on the glass, the content column at 88rem #278
v0.17.0
Features
- ads
connect-only adapter kind, the raw contract on every adapter, three platform values and the accounts-only sync (spec G g1) #240
- ads
disconnect revokes the grant, the connect-only brief sentence, coverage on list_connections and no agent copy on hub pages (spec G gf) #256
- ads
escape hatch safety on Meta, Google and TikTok: redaction, size caps, no redirects, a timeout and a per-connection raw budget (spec G g1b) #245
- ads
Microsoft Advertising account connect: OAuth with PKCE, the developer token, customers and accounts, IANA time zones and the raw contract over the service hosts (spec G g3) #243
- ads
Reddit Ads account connect: OAuth 2.0 with the app credential, businesses and ad accounts, the User-Agent on every call and the raw contract over the Ads API base (spec G g2) #251
- ads
X Ads account connect over OAuth 1.0a through the existing routes: the signer, the sealed handoff in the OAuth cookie, discovery with funding-source currency and the raw contract (spec G g4) #244
- ai
the escape hatch on six platforms: tool descriptions, coverage in tempio_help, the connect-only hatch suite and the docs (spec G g5) #250
- auth
affiliate attribution: the tempio_ref cookie on the site, the waitlist forward, the sign-up and workspace hooks, and commissions from invoice.paid with refunds, disputes and the daily hold (spec K2 k2b) #247
- auth
the token-ring reseal sweep runs on Inngest every six hours and on ads/grants.reseal.requested, over platform grants and provider keys #261
- db
affiliate ledger: six tables, migration 0028_affiliate, the shared ledger module, AFFILIATE_TERMS and the ref token (spec K2 k2a) #241
- ui
/settings/affiliate: apply, the six states, payout details and close, every read filtered by the session user's affiliate (spec K2 k2c) #246
- ui
R5 lane B1, the Softriver kit on the v2 system: purple sidebar, tinted grounds, gradient tokens, BrandPattern, Medium headings, animated Lucide, the two exceptions on generated constants #252
- ui
the connect-only connection card, the raw request sheet and its actions, the settings reach sentence and the planner's refusal of connect-only platforms (spec G g6) #248
- ui
the console's Affiliates section: applications, the ledger, payouts recorded by hand, the seven affiliate mails and the monthly statement (spec K2 k2d) #254
- web
/affiliates with every number from AFFILIATE_TERMS, the /affiliates/terms draft, and the affiliate docs pages (spec K2 k2e) #257
Fixes
- ads
a reconnect starts a sync, a persisted queued state, one run per connection, the poll arms after a reconnect, vault errors carry the reconnect CTA (/connections follow-up) #264
- ads
a reseal no longer races a refresh, both reseal guards hold on updatedAt, the provider-key guard has a test, one percent formatter, the docs figures test closes its gap #263
- ads
the revoke path checks the grant's stamp before the call, forgetGrant's guard checks status, and the shared case covers a revoked grant (spec G gf follow-up) #260
- auth
the generated icon and OG image routes are public #265
- ui
the affiliates console on shared ledger functions, one balances query and keyset paging, a dev seed, and the polish loop over its five routes (spec K2 k2d follow-up) #262
v0.16.0
Features
- ai
track L step (l5), the creative tools: eight MCP tools over the creative layer, the brand_kit, preset, creative_asset and creative_batch manage entities, the brand-kit resource and the creative_brief prompt #225
- auth
track L step (l6), bring-your-own provider keys: the OpenAI and Google adapters over a sealed key, resolveProvider picking them, the /settings/integrations card and meter, scrape_brand_kit, the Google Fonts fetch #232
- ui
track L step (l4), the creative surfaces: /media tabs, /media/create with the preset grid, generated fields form and batch gallery, /media/brand-kit with the role palette editor, Use in an ad, the upgrade prompt #223
Fixes
- ads
creative layer follow-ups: a rule never approves an upload, the refund status follows the ledger, Edit offers only stills, the library fetch on the resolving guard, the fonts fetch capped and deduped, two site FAQs made true #236
v0.15.0
Features
- ads
track I step (i3), pacing on every surface: the four warnings on every campaign read, the campaign page chip, the brief's drift sentence, the chat's drift lines, the planned series #201
- ads
track I step (i5), goals and scenarios: duplicate a plan as a scenario, promote one variant and archive its siblings, the scenario stack and totals strip, goal verdicts on every plan read #202
- ads
track I step (i6a), the planning tools: get_timeline, get_pacing, phases, envelopes and goals over MCP, the workspace timeline resource, the pace_review prompt #203
- ads
track L step (l2), the composite renderer: six satori templates over the seven presets, typed fields with the required compliance line, fonts from disk, the Goat Club fixture kit #221
- ads
track L step (l3), the generation pipeline: batches and generations, the Inngest fan-out under the org's concurrency key, the meter and refunds, the scene-text check, resize and edit from the stored scene #222
- db
track I step (i1), the planning contract: campaign phases, budget envelopes, goals, scenarios and the plan-to-campaign stamp in migration 0024, pacing at read, the timeline read model, four warnings #197
- db
track L step (l1), the creative contract: migration 0026, brand kit, presets, the provider interface, sealed provider keys, the generation meter #220
- ui
track I step (i2), the timeline: every live campaign and plan item on one calendar, drag as a draft, phases and pacing on the bar, the campaign sheet #200
Fixes
- ads
swarm-10 follow-ups in the app: revoke and resend a sign-off, the requester's mail on a decision, the decline pool check, one staleness constant, a new-slug proposal in the console #198
- ads
the Google ad library reads the dataset as published — US, one creative table, dates inside region_stats #193
- ads
track I follow-ups: the allocator day ledger's unique index, drift on the brief card, the live region per lane kind, overrides on tool reads, reach on duplicatePlan, the planner-settings actor, the policy preselect #219
v0.14.1
Fixes
- ads
the Google ad library queries BigQuery in the dataset's own location, EU #191
v0.14.0
Features
- admin
track J step (j4), the editorial gate: the knowledge shelf, proposals with a diff, approve publishes a version and reject publishes nothing, every decision audited #176
- ads
track C step (c1), the ad library contract: thirteen tables, migration 0021, links, warnings, pending routes, entitlements, events, budgets #140
- ads
track C step (c2), the ingest: Meta and Google clients, the normalisers, add-by-website resolution, the Inngest run #150
- ads
track C step (c3), the ingest: LinkedIn and TikTok clients and normalisers, the media re-host path #146
- ads
track C step (c4), the analysis: the longevity score, platform-range spend estimates, the labelled enrichment pass, landing-page rollup, similar advertisers #147
- ads
track C step (c5), the search and the tool layer: search_library over the corpus, the library and advertiser tools, six manage rows live #155
- ads
track C step (c6), tracking, alerts and the digest: library_watch behind two tools, four alert kinds, the Monday digest and its own unsubscribe, four manage rows live #157
- ads
track C step (c7), the swipe file and the hub: the six library pages, the swipe tools, the two plan limits, eight manage rows live #164
- ads
track H step (h2), guardrail overrides per scope resolved inside the gate, the settings page, list_guardrails, the docs #182
- ads
track H step (h3), approval chains: stages snapshotted onto the draft, one decision row per signature, separation of duties, the settings section, the stage strip, list_approval_chains #184
- ads
track H step (h4), client sign-off: a signed link on a sessionless review page that satisfies a client stage, the request sheet, the mail #186
- ads
track H step (h5), restricted connections: a per-member level enforced once in the tool layer through actorUserId, the access page, list_connection_permissions #185
- ads
track K3 step (k1), the CLI contract: mcp-schemas and mcp-errors emitted, parseToolMessage, workspace on help, the first MCP transport test against the route #170
- ads
track K3 step (k2), @tempio/cli: an MCP client over the route, commands and flags generated from the contracts, exit codes from mcp-errors, login and whoami #174
- ai
track J step (j1), the knowledge corpus: knowledge_doc and knowledge_proposal, the @tempio/knowledge files and knowledge:sync, the six house notes, playbook_stale and the playbook link #171
- ai
track J step (j2), MCP resources and prompts: the playbook shelf, the catalogue and the account brief as resources, four house prompts, help paths and search, two new contracts #178
- ai
track J step (j3), the playbook digest in the chat, list_playbooks and get_playbook, the playbook panel on the plan #175
- db
track H step (h1), the governance contract: seven tables, migration 0023, the Scale plan, four plan capabilities enforced by name, actorUserId on the tool context #173
- docs
track C step (c8), the library docs, the ad library claims flip, the plan gate line, the skills #166
- docs
track K3 step (k3), the CLI in CI and on the train, publish-cli.yml, /docs/cli as the reference generated from the contracts, the product page true to the build #180
- ui
track H step (h6), the settings home: one rail over ten sections, members, billing and account moved in from /dashboard, the theme persisted per person #179
- web
track E lane (e1) glossary, task 1: the first forty terms #142
- web
track E lane (e1) glossary, task 2: the next forty terms #152
- web
track E lane (e1) glossary, task 3: the last thirty-six terms #161
- web
track E lane (e10) close-out: the four graph edges, the sibling cap, policy rows, spec reconciliation #165
- web
track E lane (e2) calculators and utilities, task 1: the first eighteen tools #151
- web
track E lane (e2) calculators and utilities, task 2: the next twelve tools #158
- web
track E lane (e2) calculators, task 2b: the three deferred calculators #163
- web
track E lane (e4) templates: sixty-nine entries #149
- web
track E lane (e6) channels and integrations: twenty-seven entries #143
- web
track E lane (e7) examples: sixty-two entries, noindex behind the ad library #145
- web
track E lane (e8) blog: the eleven posts that complete the cluster at twelve #162
- web
track E lane (e8) guides, task 1: the five category hubs and the first twenty guides #154
- web
track E lane (e8) guides, task 2: the nineteen guides that complete the cluster at forty #159
- web
track H step (h7), the multi-stage approval and client sign-off claims shipped, the Scale column on pricing and billing, the governance skills #187
v0.13.0
Features
- ads
track B step (b1), the MCP surface contract: manage routes, warnings, deep-links, the envelope, migration 0020 #125
- ads
track B steps (b2)–(b7), the MCP surface: tempio_manage and tempio_help, warnings and deep-links on every read, OAuth for MCP clients, the escape hatch, the consolidated Google reads, the docs #131
- infra
Sentry on every app — web and admin wired, the hub's route boundary reports #130
- web
track D step (a), the core body layer: schemas, loaders, claims tokens, the changelog parser, the affiliates capability #120
- web
track D step (b), the homepage through HomeTemplate from its core body #123
- web
track D step (c), the four shipped product pillars: govern, measure, mcp, and plan's cross-links #122
- web
track D step (d), the seven planned product pillars #128
- web
track D step (e), pricing behind the flag and the security page #127
- web
track D step (f), about and the changelog generated from CHANGELOG.md #126
- web
track D step (g), early access restaged, support and affiliates from their core bodies #124
v0.12.1
Fixes
- ui
the user menu and the workspace switcher open again #117
v0.12.0
Features
- web
R3 step (d) — the channels and integrations clusters: Meta, Google, TikTok, LinkedIn; Claude Code, Cursor, ChatGPT and the Claude Code × Meta pair #112
- web
R3 step (d) — the competitive clusters: the AdKit alternative page and GoMarble versus the Meta ads MCP, behind the write gate #111
- web
R3 step (d) — the editorial clusters: examples behind the ad-library gate, Tempio as author, the guides cluster and the blog's first post #113
- web
R3 step (d) — the templates cluster: the media plan and campaign brief, the ecommerce media plan, as files a buyer can download #110
- web
R3 step (d) — the tools cluster: three calculators and the UTM builder #108
v0.11.0
Features
- admin
broadcasts — @tempio/email owns every mail, the send on Inngest with one-click unsubscribe, the Resend webhook, the editor with a live preview and the report per delivery #97
- admin
health and audit — every sync run with its failures, the grants at risk, every workspace's audit log and the console's own actions; the admin docs page under an internal status #96
- ads
a media status reader on the adapter contract and refreshMediaFn, the cron that moves Processing to ready or failed #101
- db
migration 0019, keyset indexes for the console's sync runs, audit and deliveries pages #102
- ui
R2 step (c) — blocks batch 2, the remaining seven page blocks in @tempio/ui; role sizes survive cn #93
- ui
R2 step (d) — the eleven remaining page templates, the two galleries on /docs/design, every template registered with the site engine #98
- web
R2 step (e) — apps/web on @tempio/ui, the Stone sections and components/ui removed, the tone on html #99
- web
R3 step (c) — the source gates and the build-output suite on ci-web #104
- web
R3 step (e) — every page on the engine's metadata, the chrome and claims from claims.ts, lib/capture with the tool-results route and its mail #103
v0.10.0
Features
- admin
contacts and accounts — the lifecycle stage, filtered lists with cursors, the tabbed account, every §5.3 action guarded and audited, ⌘K #79
- admin
lists — segments as one predicate, static and segment lists, the Resend import, the public unsubscribe route #91
- ads
approval rules and account defaults — rules that say only what the evaluator honours, defaults changed only as drafts, TikTok mints its identity at connect #92
- ads
Google writes — the atomic mutate with validateOnly as a real gate, campaigns to keywords to Performance Max, media by inline asset, removal as the terminal act #84
- ads
the media library — content-addressed assets, upload straight to the blob store, one upload_media draft at the gate, the /media page #90
- ads
TikTok writes — creates land paused with the marker, complete-replacement targeting and creative, media by URL, terminal removal, identity checked not stored #81
- ui
structure writes in the app — ad-group and ad row actions as drafts, the ad-group page, campaign → ad group → ad as one batch #89
v0.9.0
Features
- ads
the tool surface — draft_changes over every operation, plural approve/reject, structure and media reads, the agent says who approves #76
Fixes
- web
the docs zone root gets its own rewrite, ending the redirect loop at /docs #78
v0.8.1
Fixes
- infra
build a redeploy of the commit already in production #74
v0.8.0
Features
- admin
the overview — spec §5.1's definitions as tested queries, range switch, deltas, charts, funnel, health #69
- ads
Meta writes — every operation applied and verified, authored targeting, two-write creates, media, the contract rows #71
- ads
the gate — n-ary drafts, policy approval, spend caps, the apply pipeline on Inngest, batch review in the app #72
- web
site engine (g)+(b) — the tempio-seo skill, sitemap/robots/llms from the manifest, security headers, /search, the docs zone #70
v0.7.0
Features
- admin
foundation — @tempio/db, the admin migration, plan overrides, contacts, the guarded console shell #67
- ads
the write wave's contract — 21 operations, versioned payloads, migration 0017 #66
- ui
apps/app on @tempio/ui — R2 step (f), the app migration #64
- ui
the app sign-in on Lovable's pattern — the prompt panel on the brand gradient, invite-only #65
- web
the launch gate — production serves /launching-soon until launch, with a preview-key bypass #61
v0.6.0
Features
Fixes
- web
gate the core pages that have no file yet — planned until each page lands #58
v0.5.0
Features
- web
the site header — Product panel from claims, active pill, Sign in, mobile sheet #50
Fixes
- ui
first sync shows immediately — backfill starts in seconds, Sync now has a pending state, queued rows read as queued #53
v0.4.0
Features
Fixes
- ads
reap stuck sync runs every 15 minutes, not on the weekly prune #39
- ui
connections page polls right after a connect or Sync now, and stops promising seconds #44
- ui
the hero drops its gradient hairline; the mark lines up with the wordmark #42
- web
retire the tagline — one SITE_HEADLINE constant and a guard test #46
v0.3.0
Features
v0.2.0
Features
Fixes
- infra
move the Vercel skip logic into scripts/vercel-ignore.sh — ignoreCommand is capped at 256 characters #30
Questions
Put frontier AI to work on every ad account you run.
Connect your accounts, point your own AI at them over MCP, and read the numbers and draft the work in one place. Every change is a draft until you approve it, or until a rule you wrote does.
Request early access- Read and draft by default. Approve is a separate permission you grant.