Tempio

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

Fixes

  • ui

    the campaigns page draws one screen of rows while it loads, and the phone list keeps its height #345

  • ui

    the Gantt's bars as [#277](https://github.com/anthonytirrizzi/Tempio/issues/277) drew them, after the neutral pass changed them #344

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

Fixes

  • ads

    the workspace seed writes the same sync runs whatever the minute #308

  • infra

    the docs package's typecheck runs tsc #310

  • ui

    a select is 44px tall on a phone under the neutral look #313

  • web

    the footer carries no laptop credit, the author having waived attribution #300

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

Fixes

  • infra

    Next.js 16.4.2, out of three advisories against 16.4.0 #290

  • web

    the launching-soon footer names the company with its ABN and ACN #296

  • web

    the site prints no registered office #297

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

Fixes

  • ads

    the library's six pages hard-load and open clean, and a spend range says which basis produced it #172

  • infra

    the train finds the release PR by branch and label, not by author #188

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

Fixes

  • ads

    track B follow-ups: the docs derive the warning and link tables, one Google service seam, deep-links from the row #137

  • infra

    the staging keep-alive pings auth health, which the anon key can reach #133

  • ui

    buttons rendered as links say so — nativeButton={false} #119

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

Fixes

  • ui

    hub pages render on the server again — the dock's layout storage #116

  • ui

    one sonner instance — the app's toasts render again #115

  • web

    R3 step (f) — the integration pass: registry labels, the Google Ads title, the organisation author, the glossary policy row #114

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

Fixes

  • ads

    an upload_media draft can be approved, and media status follows the platform — processing on a transcoding answer, refused on a failed apply #95

  • infra

    the vitest env loader strips the quotes Doppler's export writes #105

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

Fixes

  • ads

    the gate stamps an asset-group pre-image, update_targeting gains clearAudiences, the adapter evidence lines and the parity table tell the truth #88

  • docs

    the docs pages get the site's favicon #85

  • web

    the docs zone answers RSC prefetches through the apex and carries its own favicon #86

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

  • ads

    Google live smoke (G8) — read-only run against the linked Goat Club account #60

  • ads

    the account brief — 90 days of account facts on the dashboard, in chat and over MCP #54

  • web

    the header panel as built — colour marks, dark popup, hover states, no status tags #55

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

  • ads

    the backfill choice on the account picker (Row 1) #47

  • ads

    TikTok sandbox smoke (T7) — sandbox host, null-tolerant schemas, lines 1–5 and 7–10 evidenced #48

  • infra

    release: hold label — Anthony's brake on the release train #40

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

  • infra

    release train + self-healing production — agents merge, nobody clicks #35

  • web

    the first two real pages — the glossary cluster and /product/plan on the site engine #34

Fixes

  • ads

    per-platform sync concurrency 6 → 5, the Inngest free-plan cap #36

  • infra

    promote.yml gains a rebuild input that POSTs the Vercel deploy hooks #32

  • infra

    release train can read the release PR's commit statuses #37

v0.2.0

Features

  • auth

    Meta callbacks answer a browser GET with the deletion-instructions page #27

  • infra

    release flow — merges deploy nothing, production moves on a versioned release #26

  • ui

    R2 step (b) — blocks batch 1, the first twelve page blocks in @tempio/ui #28

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.