{"id":"bumpgrade-director-status","generatedAt":"2026-06-10T05:01:34.484Z","source":"d1","loadError":null,"windows":[{"id":"past-1-day","label":"Past 1 day","hours":24,"since":"2026-06-09T05:01:34.484Z","workLogEntries":0,"shippedPrs":0,"changedWorkstreams":0,"needsMark":0,"recentChanges":[]},{"id":"past-7-days","label":"Past 7 days","hours":168,"since":"2026-06-03T05:01:34.484Z","workLogEntries":0,"shippedPrs":0,"changedWorkstreams":0,"needsMark":0,"recentChanges":[]}],"totals":{"workstreams":9,"onTrack":4,"atRisk":1,"blocked":0,"done":4,"quiet":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":2},"executiveQueue":[{"id":"due-now","label":"Due now","summary":"Current owner decisions, roadmap blockers, and roadmap attention items to handle before more feature throughput.","items":[{"id":"mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","title":"Choose and verify audience sender before subscriber email delivery","status":"needs_mark","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","updatedAt":"2026-05-26T21:05:28.000Z","evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"},{"label":"For the owner","url":"https://bumpgrade.com/admin/for-mark","source":"attention","kind":"attention"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"high","queueLabel":"Needs owner action","reason":"Open decision or attention item."},{"id":"mark-attention-2026-05-18-rkmoriarty-auth-alignment","title":"Confirm authenticated sender alignment for a private trusted sender","status":"needs_mark","summary":"If a private trusted sender should steer Codex directly, configure aligned SPF/DKIM/DMARC for that sending path or use a private trusted sender / a private trusted sender until alignment is verified.","updatedAt":"2026-05-18T14:17:27.000Z","evidence":[{"label":"Issue #61","url":"https://github.com/markitics/bumpgrade/issues/61","kind":"issue","source":"attention"},{"label":"Codex mail workflow","url":"https://bumpgrade.com/admin/for-mark","kind":"admin","source":"attention"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"high","queueLabel":"Needs owner action","reason":"Open decision or attention item."}]},{"id":"in-flight","label":"In flight","summary":"Active roadmap work grouped by the executive workstream that owns the next brief.","items":[{"id":"roadmap-advanced-funnel-builder-parity","title":"Advanced funnel editing, resource delivery, and agent-safe writes","status":"active","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","updatedAt":"2026-05-27T01:48:19.000Z","evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."},{"id":"roadmap-live-analytics-execution","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","status":"active","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}],"workstreamId":"analytics-growth","workstreamTitle":"Analytics / Growth","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."},{"id":"roadmap-mobile-admin","title":"Publisher admin apps for iOS and Android","status":"active","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","updatedAt":"2026-05-26T23:03:55.000Z","evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}],"workstreamId":"mobile-admin","workstreamTitle":"Mobile Admin","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."}]},{"id":"pending-next","label":"Pending next","summary":"Committed or proposed roadmap work waiting behind active slices.","items":[{"id":"roadmap-live-publisher-offer-billing","title":"Live publisher-offer checkout and webhook rollout","status":"pending","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","updatedAt":"2026-05-24T06:23:26.000Z","evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."},{"id":"roadmap-live-email-delivery-execution","title":"Live email delivery, automation execution, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","updatedAt":"2026-05-24T08:16:46.000Z","evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}],"workstreamId":"audience-email","workstreamTitle":"Audience / Email","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."},{"id":"roadmap-live-affiliate-execution","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}],"workstreamId":"analytics-growth","workstreamTitle":"Analytics / Growth","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."}]},{"id":"watchlist","label":"Watchlist","summary":"Informational caveats on live roadmap items that should remain visible without becoming due today.","items":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."},{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."},{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}],"workstreamId":"operations-control","workstreamTitle":"Operations / Project Control","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."}]}],"briefingControls":[{"id":"past-1-day","label":"Past 1 day","title":"Changed since yesterday","summary":"Recent shipped and in-flight changes without opening the full work-log ledger.","href":"/admin/work-log?window=past-1-day","sourceRoute":"/admin/work-log/source-data","primaryMetric":{"value":0,"label":"work-log entries"},"secondaryMetric":"0 workstreams changed","workstreamIds":[]},{"id":"past-7-days","label":"Past 7 days","title":"Weekly CMO-style recap","summary":"The practical weekly roll-up across Marketing, Security, Product, Platform, and agent work.","href":"/admin/work-log?window=past-7-days","sourceRoute":"/admin/work-log/source-data","primaryMetric":{"value":0,"label":"work-log entries"},"secondaryMetric":"0 workstreams changed","workstreamIds":[]},{"id":"executive-queue","label":"Due and pending","title":"Executive queue","summary":"Owner decisions, active work, pending next items, and watchlist caveats grouped by workstream.","href":"#executive-queue","sourceRoute":"/admin/director/source-data","primaryMetric":{"value":2,"label":"due now"},"secondaryMetric":"11 total queue items","workstreamIds":["security-trust","product-commerce","analytics-growth","mobile-admin","audience-email","operations-control"]},{"id":"workstream-map","label":"Nested teams","title":"Workstream map","summary":"Top-level Marketing, Security, Product, Mobile, Infrastructure, and Operations categories before the drill-down.","href":"#workstream-map","sourceRoute":"/admin/director/source-data","primaryMetric":{"value":9,"label":"workstreams"},"secondaryMetric":"1 risk flag","workstreamIds":["marketing","product-commerce","audience-email","analytics-growth","mobile-admin","agent-readiness","security-trust","infrastructure","operations-control"]}],"workstreams":[{"id":"marketing","title":"Marketing","executiveOwner":"CMO brief","description":"Homepage, positioning, feature catalog, comparison pages, SEO, resources, and public launch copy.","status":"done","currentFocus":"Homepage, positioning, feature catalog, comparison pages, SEO, resources, and public launch copy.","brief":{"headline":"Homepage, positioning, feature catalog, comparison pages, SEO, resources, and public launch copy.","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":4,"active":0,"pending":0,"shipped":4,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-comparison-hub","title":"Comparison hub and alternative pages","status":"live","summary":"Shopify-inspired compare hub, nine alternative pages, source-linked competitor data, and /compare/source-data.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":5,"label":"Issue #5","url":"https://github.com/markitics/bumpgrade/issues/5","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-comparison-hub","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-comparison-hub","kind":"note"}]},{"id":"roadmap-feature-catalog","title":"Public feature catalog","status":"live","summary":"Aspirational /features page with live and pending badges, stable feature IDs, issue links, and /features/source-data.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":6,"label":"Issue #6","url":"https://github.com/markitics/bumpgrade/issues/6","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-feature-catalog","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-feature-catalog","kind":"note"}]},{"id":"roadmap-competitor-importers","title":"Easy importers from ClickFunnels and competitor platforms","status":"live","summary":"Importer center, dedicated platform import paths, public redacted review maps, private draft creation, checkout rebuild readiness, private subscriber import records, owner-only private subscriber inspection, imported-pending audience review-list promotion, owner-only private subscriber CSV export, and reusable source-data contract for moving competitor platform context into private Bumpgrade launch workspaces before go-live.","updatedAt":"2026-05-26T22:18:27.000Z","evidence":[{"source":"issue","number":467,"label":"Issue #467","url":"https://github.com/markitics/bumpgrade/issues/467","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"}]},{"id":"roadmap-free-build-before-go-live","title":"Free build-before-go-live pricing model","status":"live","summary":"Defines the $0 private-building path, logged-out browser playground recovery, signed-in Free Build workspace creation, paid go-live gates, and the handoff before public, billing, sending, domain, or fulfillment actions are treated as live.","updatedAt":"2026-05-26T14:39:49.000Z","evidence":[{"source":"issue","number":466,"label":"Issue #466","url":"https://github.com/markitics/bumpgrade/issues/466","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-comparison-hub","roadmap-feature-catalog","roadmap-competitor-importers","roadmap-free-build-before-go-live"],"workLog":["work-log-2026-05-29-add-before-after-importer-offer-visuals","work-log-2026-05-29-user-journey-proof-source","work-log-2026-05-29-noncanonical-comparison-boundary","work-log-2026-05-29-visual-polish-user-resource-routes","work-log-2026-05-28-shared-marketing-primitives","work-log-2026-05-28-route-specific-og-images","work-log-2026-05-28-resource-routes-status-honesty","work-log-2026-05-28-homepage-demo-loop","work-log-2026-05-28-importer-parity-contract-tests","work-log-2026-05-28-mobile-pricing-matrix-overflow","work-log-2026-05-28-competitor-feature-match-row-ids","work-log-2026-05-28-generated-route-seo-coverage","work-log-2026-05-28-comparison-seo-depth","work-log-2026-05-28-pricing-canonical-route","work-log-2026-05-28-competitor-related-feature-cross-links","work-log-2026-05-28-dedicated-audience-use-case-pages","work-log-2026-05-28-global-marketing-footer","work-log-2026-05-28-public-funnels-index","work-log-2026-05-28-visible-comparison-faq","work-log-2026-05-26-importer-subscriber-preflight-actions","work-log-2026-05-26-anonymous-playground-scheduled-cleanup","work-log-2026-05-25-importer-record-field-extraction","work-log-2026-05-25-anonymous-playground-claim-merge"],"attention":[]}},{"id":"product-commerce","title":"Product / Commerce","executiveOwner":"Product and revenue brief","description":"Funnels, checkout, offers, payments, products, entitlements, subscriptions, and access flows.","status":"on_track","currentFocus":"Advanced funnel editing, resource delivery, and agent-safe writes","brief":{"headline":"Doing: Advanced funnel editing, resource delivery, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Advanced funnel editing, resource delivery, and agent-safe writes","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","count":1,"evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}]},{"id":"pending-next","label":"Next","state":"pending","title":"Live publisher-offer checkout and webhook rollout","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","count":1,"evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"watch","title":"Stripe payments and checkout architecture","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","count":1,"evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]}]},"counts":{"total":5,"active":1,"pending":1,"shipped":3,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[{"id":"roadmap-advanced-funnel-builder-parity","title":"Advanced funnel editing, resource delivery, and agent-safe writes","status":"active","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","updatedAt":"2026-05-27T01:48:19.000Z","evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}]}],"pending":[{"id":"roadmap-live-publisher-offer-billing","title":"Live publisher-offer checkout and webhook rollout","status":"pending","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","updatedAt":"2026-05-24T06:23:26.000Z","evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}]}],"shipped":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Stripe architecture, secret mapping, D1 commerce schema, billing-safe agent contract, live self-serve Bumpgrade subscription checkout, sandbox publisher-offer checkout, webhooks, and audit trails.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]},{"id":"roadmap-funnels","title":"Funnel and page builder MVP","status":"live","summary":"Multi-step funnel model, source-data contract, read-only seeded preview foundation, owner-gated editable draft foundation with step edit/reorder controls, granular block title/body editing, reusable block add/remove controls, owner-session visual style controls, bounded owner-session canvas layout controls, owner-session within-step block reordering, owner-session cross-step block moves, owner-gated private preview, exact-confirmed public publishing, reusable template and block-template library records including webinar/resource page shapes, owner-confirmed template-to-draft creation, owner-confirmed private draft duplication, owner-confirmed checkout-offer linking on private draft steps, public sandbox checkout start rendering from published linked checkout blocks, owner-confirmed archive/unpublish lifecycle actions, owner-confirmed archived-draft purge with tombstone evidence, owner-confirmed bulk archived-draft purge with one tombstone per draft, owner-confirmed resource delivery links to product/access catalog assets, funnel-scoped private download-token delivery from published linked resource blocks, owner-confirmed webinar event/replay links to public-safe external URLs, and safe draft proposals.","updatedAt":"2026-05-26T23:51:18.000Z","evidence":[{"source":"issue","number":14,"label":"Issue #14","url":"https://github.com/markitics/bumpgrade/issues/14","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"}]},{"id":"roadmap-products-access","title":"Products, downloads, courses, memberships, and subscriptions","status":"live","summary":"Digital product records, seeded payment-plan read records, owner-created product test checkout links, owner product delivery-gate links, product/access source data, sandbox webhook-backed entitlement grants, owner entitlement inspection, customer entitlement lookup, private R2-backed fixture delivery with redemption revalidation, owner-confirmed private asset upload intents, owner-confirmed non-destructive revocation intents, protected content readiness, checkout-intent-scoped protected fixture delivery, subscription-backed membership access, fulfillment task evidence, access rules, and subscriptions.","updatedAt":"2026-05-24T05:27:41.000Z","evidence":[{"source":"issue","number":16,"label":"Issue #16","url":"https://github.com/markitics/bumpgrade/issues/16","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-stripe-commerce","roadmap-funnels","roadmap-advanced-funnel-builder-parity","roadmap-live-publisher-offer-billing","roadmap-products-access"],"workLog":[],"attention":[]}},{"id":"audience-email","title":"Audience / Email","executiveOwner":"Lifecycle brief","description":"Subscribers, opt-ins, imports, broadcasts, sequences, email readiness, consent, and suppression.","status":"on_track","currentFocus":"Live email delivery, automation execution, and agent-safe writes","brief":{"headline":"Next: Live email delivery, automation execution, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"pending","title":"Live email delivery, automation execution, and agent-safe writes","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","count":1,"evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":2,"active":0,"pending":1,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[{"id":"roadmap-live-email-delivery-execution","title":"Live email delivery, automation execution, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","updatedAt":"2026-05-24T08:16:46.000Z","evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}]}],"shipped":[{"id":"roadmap-email-automation","title":"Email marketing, list growth, CRM-lite, and automations","status":"live","summary":"Subscriber segments, consent-backed opt-in capture, suppression evidence, owner CRM notes, sequence and broadcast dry-run gates, sender/provider/queue readiness, and owner-only broadcast plus sequence test-send execution paths.","updatedAt":"2026-05-25T04:39:42.000Z","evidence":[{"source":"issue","number":17,"label":"Issue #17","url":"https://github.com/markitics/bumpgrade/issues/17","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-email-automation","roadmap-live-email-delivery-execution"],"workLog":["work-log-2026-05-27-form-placeholder-cleanup"],"attention":[]}},{"id":"analytics-growth","title":"Analytics / Growth","executiveOwner":"Growth brief","description":"Analytics, experiments, attribution, referrals, affiliates, reporting, and growth evidence.","status":"on_track","currentFocus":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","brief":{"headline":"Doing: Live analytics automation, experiment routing, notification execution, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","count":1,"evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}]},{"id":"pending-next","label":"Next","state":"pending","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","count":1,"evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":6,"active":1,"pending":1,"shipped":4,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[{"id":"roadmap-live-analytics-execution","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","status":"active","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}]}],"pending":[{"id":"roadmap-live-affiliate-execution","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}]}],"shipped":[{"id":"roadmap-checkout-offers","title":"Checkout, order bump, upsell, and downsell MVP","status":"live","summary":"Stripe-backed checkout flows, confirmed sandbox checkout start with a constrained order bump, optional referral-click attribution evidence, review-only commission ledger evidence, owner review/reversal actions, non-billing post-purchase upsell/downsell decision evidence, subscriptions, coupons, and audit trails.","updatedAt":"2026-05-24T00:59:50.000Z","evidence":[{"source":"issue","number":15,"label":"Issue #15","url":"https://github.com/markitics/bumpgrade/issues/15","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"}]},{"id":"roadmap-analytics-testing","title":"Analytics, A/B testing, and conversion tracking","status":"live","summary":"Privacy-safe analytics event capture, session-idempotent funnel page-view beacons with deterministic variant and normalized source attribution evidence, public-safe custom source/campaign routing rules, owner-confirmed winner rollout and rollback routing for unmatched experiment traffic, dashboard-visible fixed-window aggregate source breakdowns, deterministic seeded experiment assignment, aggregate funnel conversion reports, aggregate report exports, owner-reviewed cohort comparison evidence, owner-reviewed alert threshold/anomaly-review evidence, owner-reviewed notification delivery readiness evidence, owner-confirmed notification inbox records, owner-confirmed dispatch preflights, owner-reviewed provider/domain readiness records, owner-reviewed content/consent readiness records, owner-reviewed send-payload readiness records, owner-reviewed queue-producer readiness records, owner-reviewed queue-consumer readiness records, owner-reviewed provider-call readiness records, owner-reviewed delivery-attempt readiness records, owner-reviewed delivery-result readiness records, owner-reviewed delivery-status-webhook readiness records, owner-reviewed provider-polling readiness records, owner-reviewed receipt-payload readiness records, owner-reviewed delivery-receipt readiness records, owner-reviewed provider-status reconciliation readiness records, owner-confirmed experiment decision evidence, attribution boundaries, and source-linked reporting.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":18,"label":"Issue #18","url":"https://github.com/markitics/bumpgrade/issues/18","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"}]},{"id":"roadmap-affiliates-referrals","title":"Affiliate and referral management","status":"live","summary":"Affiliate and referral evidence now includes partner links, privacy-safe click capture, checkout attribution evidence, review-only commission ledger rows, owner review/reversal actions, public-safe partner reports, read-only payout preparation, owner-confirmed payout preparation records, owner-reviewed fraud review records, owner-reviewed partner notification readiness records, owner-reviewed partner notification send preflight records, and owner-reviewed partner notification provider readiness records before payable commissions, partner sends, or Stripe payouts exist.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":19,"label":"Issue #19","url":"https://github.com/markitics/bumpgrade/issues/19","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"}]},{"id":"roadmap-marketing-surfaces","title":"Users, developers and agents, resources, pricing, and blog surfaces","status":"live","summary":"Users, developers and agents, resources, self-serve pricing, pricing-v2, metadata, sitemap entries, and /content/source-data contract.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":20,"label":"Issue #20","url":"https://github.com/markitics/bumpgrade/issues/20","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-checkout-offers","roadmap-analytics-testing","roadmap-live-analytics-execution","roadmap-affiliates-referrals","roadmap-live-affiliate-execution","roadmap-marketing-surfaces"],"workLog":[],"attention":[]}},{"id":"mobile-admin","title":"Mobile Admin","executiveOwner":"Mobile product brief","description":"iOS, Android, mobile dashboard source-data, simulator/emulator proof, mobile auth boundaries, private rows, private-row actions, Director reviews, commerce reviews, audit-only action intents, push readiness, and distribution readiness.","status":"on_track","currentFocus":"Publisher admin apps for iOS and Android","brief":{"headline":"Doing: Publisher admin apps for iOS and Android","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Publisher admin apps for iOS and Android","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","count":1,"evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":1,"pending":0,"shipped":0,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[{"id":"roadmap-mobile-admin","title":"Publisher admin apps for iOS and Android","status":"active","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","updatedAt":"2026-05-26T23:03:55.000Z","evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}]}],"pending":[],"shipped":[],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-mobile-admin"],"workLog":["work-log-2026-05-28-brand-nav-discovery"],"attention":[]}},{"id":"agent-readiness","title":"Agent Readiness","executiveOwner":"Agent platform brief","description":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","status":"done","currentFocus":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","brief":{"headline":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":0,"pending":0,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-agent-contracts","title":"Agent-ready docs, manifests, APIs, and MCP","status":"live","summary":"Public agent docs, source evidence, /agent-docs/source-data manifest, server-side read contracts, and future MCP resources are published.","updatedAt":"2026-05-18T17:00:17.000Z","evidence":[{"source":"issue","number":12,"label":"Issue #12","url":"https://github.com/markitics/bumpgrade/issues/12","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-agent-contracts"],"workLog":[],"attention":[]}},{"id":"security-trust","title":"Security / Trust","executiveOwner":"Security brief","description":"Auth, account setup, domains, tenant boundaries, trusted senders, and permission gates.","status":"at_risk","currentFocus":"Decision needed: Choose and verify audience sender before subscriber email delivery","brief":{"headline":"Due: Choose and verify audience sender before subscriber email delivery","signals":[{"id":"due-now","label":"Due","state":"needs_mark","title":"Choose and verify audience sender before subscriber email delivery","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","count":2,"evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"}]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"watch","title":"Publisher and admin authentication","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","count":1,"evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}]},"counts":{"total":4,"active":0,"pending":0,"shipped":4,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":2},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-paid-publisher-subdomains","title":"Paid publisher tenants and Bumpgrade subdomains","status":"live","summary":"Publisher account setup now has paid-plan entitlement records, D1-backed tenant rows, idempotent default subdomain reservation, and cross-subdomain Better Auth cookie configuration for bumpgrade.com subdomains.","updatedAt":"2026-05-20T12:20:51.000Z","evidence":[{"source":"issue","number":222,"label":"Issue #222","url":"https://github.com/markitics/bumpgrade/issues/222","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"}]},{"id":"roadmap-custom-domain-onboarding","title":"Custom domain DNS onboarding and verification","status":"live","summary":"Paid publishers can add an existing custom domain, receive deterministic CNAME instructions, and re-check DNS verification state from account setup without exposing private DNS credentials.","updatedAt":"2026-05-20T12:30:45.000Z","evidence":[{"source":"issue","number":223,"label":"Issue #223","url":"https://github.com/markitics/bumpgrade/issues/223","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"}]},{"id":"roadmap-cross-subdomain-customer-auth","title":"Customer login across Bumpgrade-hosted publisher sites","status":"live","summary":"Bumpgrade-hosted publisher subdomains share the central Better Auth identity session while tenant access remains scoped per hostname, checkout, entitlement, and membership state.","updatedAt":"2026-05-20T13:21:34.000Z","evidence":[{"source":"issue","number":224,"label":"Issue #224","url":"https://github.com/markitics/bumpgrade/issues/224","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"}]},{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Better Auth email/password accounts, D1-backed sessions, API routes, login/signup UI, and owner-gated admin pages.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}],"blocked":[],"needsMark":[{"id":"mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","title":"Choose and verify audience sender before subscriber email delivery","status":"needs_mark","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","updatedAt":"2026-05-26T21:05:28.000Z","evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"},{"label":"For the owner","url":"https://bumpgrade.com/admin/for-mark","source":"attention","kind":"attention"}]},{"id":"mark-attention-2026-05-18-rkmoriarty-auth-alignment","title":"Confirm authenticated sender alignment for a private trusted sender","status":"needs_mark","summary":"If a private trusted sender should steer Codex directly, configure aligned SPF/DKIM/DMARC for that sending path or use a private trusted sender / a private trusted sender until alignment is verified.","updatedAt":"2026-05-18T14:17:27.000Z","evidence":[{"label":"Issue #61","url":"https://github.com/markitics/bumpgrade/issues/61","kind":"issue","source":"attention"},{"label":"Codex mail workflow","url":"https://bumpgrade.com/admin/for-mark","kind":"admin","source":"attention"}]}],"watchlist":[{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-paid-publisher-subdomains","roadmap-custom-domain-onboarding","roadmap-cross-subdomain-customer-auth","roadmap-better-auth"],"workLog":[],"attention":["mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","mark-attention-2026-05-18-rkmoriarty-auth-alignment"]}},{"id":"infrastructure","title":"Infrastructure","executiveOwner":"Platform brief","description":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","status":"done","currentFocus":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","brief":{"headline":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":0,"pending":0,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-cloudflare-foundation","title":"Cloudflare app foundation","status":"live","summary":"Next/OpenNext Worker app, D1 binding, R2 cache binding, DNS, core routes, screenshots, and deploy path.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":4,"label":"Issue #4","url":"https://github.com/markitics/bumpgrade/issues/4","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-cloudflare-foundation","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-cloudflare-foundation","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-cloudflare-foundation"],"workLog":[],"attention":[]}},{"id":"operations-control","title":"Operations / Project Control","executiveOwner":"COO brief","description":"Roadmap, work-log, owner-attention queue, director dashboard, decisions, blockers, and project hygiene.","status":"done","currentFocus":"Roadmap, work-log, owner-attention queue, director dashboard, decisions, blockers, and project hygiene.","brief":{"headline":"Watch: Codex project email and reply monitor","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"watch","title":"Codex project email and reply monitor","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","count":1,"evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}]},"counts":{"total":3,"active":0,"pending":0,"shipped":3,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-public-roadmap","title":"Public roadmap from main feature set","status":"live","summary":"Public roadmap lanes connected to the feature catalog, GitHub issues, public-safe blockers, and deploy evidence.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":7,"label":"Issue #7","url":"https://github.com/markitics/bumpgrade/issues/7","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-public-roadmap","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-public-roadmap","kind":"note"}]},{"id":"roadmap-admin-surfaces","title":"D1-backed admin roadmap, work log, journeys, and owner-attention surfaces","status":"live","summary":"Owner and agent coordination surfaces backed by D1 instead of static foundation copy.","updatedAt":"2026-05-18T10:40:52.000Z","evidence":[{"source":"issue","number":8,"label":"Issue #8","url":"https://github.com/markitics/bumpgrade/issues/8","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-admin-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-admin-surfaces","kind":"note"}]},{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Cloudflare Email Routing is enabled for bumpgrade.com, shipped PR notices can send from codex@bumpgrade.com, and inbound replies route through the Worker into D1/R2 evidence.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-public-roadmap","roadmap-admin-surfaces","roadmap-codex-email"],"workLog":["work-log-2026-05-29-public-agent-doc-source-data-aliases","work-log-2026-05-29-add-approved-customer-proof-trust-signals","work-log-2026-05-28-source-discovery-policy","work-log-2026-05-27-analytics-winner-rollouts","work-log-2026-05-27-funnel-resource-delivery-receipts","work-log-2026-05-27-analytics-custom-routing-rules","work-log-2026-05-26-affiliate-partner-statement-snapshots","work-log-2026-05-26-funnel-bulk-purge-policy","work-log-2026-05-26-mobile-admin-roadmap-refresh","work-log-2026-05-26-importer-roadmap-closeout","work-log-2026-05-26-importer-checkout-readiness","work-log-2026-05-26-agent-manifest-starter-copy-closeout","work-log-2026-05-26-importer-private-subscriber-export","work-log-2026-05-26-funnel-canvas-layout-controls","work-log-2026-05-26-importer-subscriber-audience-promotion","work-log-2026-05-26-importer-subscriber-record-inspection","work-log-2026-05-26-importer-subscriber-record-creation","work-log-2026-05-26-free-build-roadmap-closeout","work-log-2026-05-25-importer-subscriber-preflight-actions","work-log-2026-05-26-owner-agent-funnel-resource-token-pr-518-blocked","work-log-2026-05-25-importer-subscriber-import-depth","work-log-2026-05-25-importer-extracted-field-editing","work-log-2026-05-25-anonymous-playground-save-limits","work-log-2026-05-25-importer-private-record-actions","work-log-2026-05-25-importer-private-record-review"],"attention":[]}}],"sourceRoutes":["/admin/director/source-data","/admin/source-data","/admin/work-log/source-data","/admin/roadmap/source-data","/admin/for-mark/source-data","/admin/user-journeys/source-data"],"emailPolicy":{"mode":"digest-first","summary":"Niche technical ships should roll into director status, source-data, PR comments, and work-log evidence unless owner-visible action is needed.","immediateEmailOnlyFor":["User-visible launches or production incidents","Blocked work requiring owner action","Security, billing, auth, deploy, or data-risk changes","Explicitly requested shipped notices"],"quietPath":["PR comment","/admin/work-log evidence","/admin/director weekly summary","Issue status update"]}}