Skip to content

docs(m66): nanos shape + posture-dispatched stage rates + SUPPORT_EMAIL snippet#48

Merged
indykish merged 2 commits into
mainfrom
feat/m66-001-byok-retirement-docs
May 11, 2026
Merged

docs(m66): nanos shape + posture-dispatched stage rates + SUPPORT_EMAIL snippet#48
indykish merged 2 commits into
mainfrom
feat/m66-001-byok-retirement-docs

Conversation

@indykish
Copy link
Copy Markdown
Contributor

@indykish indykish commented May 11, 2026

Summary

Companion docs PR for usezombie/usezombie#314. The lead PR retires the BYOK term, switches the canonical billing unit from cents to nanos (1/1,000,000,000 USD), introduces a posture-dispatched stage rate gradient, and pins a single canonical SUPPORT_EMAIL. This PR moves the docs site in lockstep.

  • snippets/rates.mdx — display exports rewritten to mirror the new four-constant Zig/TS/JS shape identifier-for-identifier: STARTER_CREDIT ($5, unchanged), EVENT_RATE ("free", was $0.01), STAGE_PLATFORM ($0.001), STAGE_SELF_MANAGED ($0.0001). Cross-tier parity rule is load-bearing — a future rate bump fails pin tests in Zig + TS + JS until this snippet is updated.
  • snippets/contact.mdx — new file exporting SUPPORT_EMAIL = "usezombie@agentmail.to". Fifth replica of the per-runtime constant added in the lead PR (Zig backend, website TS, app TS, CLI JS, and now docs MDX). Future address rotations land as a coordinated five-place bump.
  • changelog.mdx — new <Update label="May 11, 2026"> block at the top documenting the nanos rebill, the posture-dispatched stage gradient ($0.001 platform → $0.0001 self-managed = 10× cheaper to scale), the BYOK term retirement, the column/constant renames, and upgrade notes (balance_centsbalance_nanos, mode: "byok"mode: "self_managed", make down && make up for local dev).

Historical-entry carve-out

The May 9, 2026 (M65) entry described "one number per surface" under the pre-M66 rate table. Without intervention, the rates.mdx rewrite would have silently rewritten that historical entry's meaning. The fix: define EVENT_RATE_M65 + STAGE_RATE_M65 placeholders once at the import header, used inline in the affected entry only. Lightweight; the placeholders live above the shared imports so the pattern is easy to spot in future archive passes.

Broken cross-reference fix

The M63_003-era entry referenced billing_and_byok.md — the lead PR renames that file to billing_and_provider_keys.md. Updated the link target to billing_and_provider_keys.md (then named billing_and_byok.md) so the reader can follow the link without losing the historical context.

Test plan

  • Mintlify <Update> voice — Bold lead-noun bullets, no marketing words, code-name backticks, error codes / endpoint paths / column names preserved
  • Rate constants flow through the three pinned files: src/state/tenant_billing.zig, ui/packages/website/src/lib/rates.ts, ~/Projects/docs/snippets/rates.mdx (all paired in the lead PR + this PR)
  • Historical M65 entry continues to render with the old $0.01 / $0.10 rates via _M65 placeholders
  • Cross-reference billing_and_byok.mdbilling_and_provider_keys.md link target updated with parenthetical historical context

🤖 Generated with Claude Code

Greptile Summary

This PR updates the docs site to mirror the M66 backend changes: billing unit switched from cents to nanos, stage rates split into a posture-dispatched two-rate gradient, BYOK terminology retired, and a new canonical SUPPORT_EMAIL snippet introduced.

  • snippets/rates.mdx — four-constant rewrite: EVENT_RATE\"free\", STAGE_RATE replaced by STAGE_PLATFORM ($0.001) and STAGE_SELF_MANAGED ($0.0001); identifier-for-identifier parity with the Zig/TS/JS lead PR.
  • snippets/contact.mdx — new file exporting SUPPORT_EMAIL; the constant is defined and documented but not yet imported by any existing docs page, so the two pre-existing hardcoded email literals (changelog.mdx <Tip> and index.mdx) remain outside the canonical constant.
  • changelog.mdx — M66 breaking-change entry added; historical M65 pricing preserved via inline _M65 placeholder constants; billing_and_byok.md cross-reference updated with parenthetical historical context.

Confidence Score: 5/5

Safe to merge — all three files are documentation-only changes with no runtime impact.

The rate-constant rewrite in snippets/rates.mdx is straightforward and consistent with the lead PR's four-constant shape. The M66 changelog entry is well-structured with correct historical placeholder usage for the M65 entry. The only gap is that snippets/contact.mdx is never imported by any existing page, leaving pre-existing hardcoded email literals disconnected from the new canonical constant — but this is a deferred wiring issue, not a content error.

snippets/contact.mdx — the canonical SUPPORT_EMAIL constant is not yet connected to the two pre-existing hardcoded email literals in changelog.mdx and index.mdx.

Important Files Changed

Filename Overview
snippets/rates.mdx Rewrites display constants to match the four-constant nanos+gradient shape: EVENT_RATE now "free", STAGE_RATE split into STAGE_PLATFORM and STAGE_SELF_MANAGED. Clean and consistent with the cross-tier parity rule.
snippets/contact.mdx New file exporting SUPPORT_EMAIL. Correct definition and well-commented, but no existing docs page currently imports this constant, leaving pre-existing hardcoded email literals in changelog.mdx and index.mdx disconnected from the canonical snippet.
changelog.mdx Adds the M66 breaking-change entry with correct rate constant imports, inline historical M65 placeholders, and the billing_and_byok.md → billing_and_provider_keys.md cross-reference fix. All M65 occurrences of EVENT_RATE and STAGE_RATE correctly redirected to _M65 placeholders.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["Lead repo rate constants\n(tenant_billing.zig / rates.ts / types.ts / billing.js)"]
    B["snippets/rates.mdx\nSTARTER_CREDIT, EVENT_RATE,\nSTAGE_PLATFORM, STAGE_SELF_MANAGED"]
    C["changelog.mdx\nimport from rates.mdx"]
    D["Other docs pages\nimport from rates.mdx"]
    E["snippets/contact.mdx\nSUPPORT_EMAIL"]
    F["changelog.mdx Tip — hardcoded"]
    G["index.mdx — hardcoded"]
    H["Future docs pages\nimport from contact.mdx"]

    A -->|"cross-tier parity rule\npaired PR"| B
    B --> C
    B --> D
    E -.->|"no importer yet"| H
    E -. "bypassed" .-> F
    E -. "bypassed" .-> G
Loading
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
snippets/contact.mdx:10
**`SUPPORT_EMAIL` defined but never imported**

`snippets/contact.mdx` exports `SUPPORT_EMAIL`, but a repo-wide search shows no docs page imports it. Two hardcoded `usezombie@agentmail.to` literals remain live — one in `changelog.mdx` line 18 (`<Tip>` block) and one in `index.mdx` line 9. A future email rotation updates the snippet but leaves those hardcoded links stale, which defeats the stated purpose of the coordinated five-place bump.

Reviews (2): Last reviewed commit: "docs(changelog): drop internal rule iden..." | Re-trigger Greptile

…IL snippet

Companion docs PR for usezombie/usezombie#feat/m66-001-byok-retirement.

snippets/rates.mdx — display strings now mirror the new four-constant
shape: STARTER_CREDIT ($5, unchanged), EVENT_RATE ("free", was $0.01),
STAGE_PLATFORM ($0.001), STAGE_SELF_MANAGED ($0.0001). Identifier names
match Zig + website TS + app TS + zombiectl JS exports identifier-for-
identifier per the cross-tier parity rule.

snippets/contact.mdx — new file exporting SUPPORT_EMAIL =
"usezombie@agentmail.to". Mirrors the per-runtime constants added in
the lead PR. Future address rotations land as a coordinated bump in
all five places.

changelog.mdx:

- New <Update label="May 11, 2026"> block at the top of the file
  documenting the nanos rebill, the posture-dispatched stage gradient,
  the BYOK term retirement, and the column/constant renames. Includes
  upgrade notes (`balance_cents` → `balance_nanos`, `mode: "byok"` →
  `mode: "self_managed"`, `make down && make up` for local dev),
  what's-new bullets, and an API-reference section showing the new
  shapes.
- Historical May 9, 2026 (M65) entry now imports EVENT_RATE_M65 +
  STAGE_RATE_M65 (inline placeholders defined just below the shared
  imports) so the entry preserves the $0.01 / $0.10 rates that
  actually shipped at that time. Without this carve-out the rates.mdx
  rewrite would have silently rewritten the historical entry's
  meaning — the May 9 entry described "one number per surface" under
  a different rate table, and the new EVENT_RATE = "free" /
  STAGE_PLATFORM + STAGE_SELF_MANAGED gradient would have broken its
  narrative. The pattern is light-touch: define `_M65` placeholders
  once at the import header, used inline in the affected entry only.
- Fixed broken cross-reference in the M63_003-era entry:
  `billing_and_byok.md` (renamed last quarter) now reads as
  `billing_and_provider_keys.md (then named billing_and_byok.md)` so
  readers can follow the link without losing the historical context
  that the file used to live at the old path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@indykish
Copy link
Copy Markdown
Contributor Author

Lead PR: usezombie/usezombie#314

Comment thread changelog.mdx Outdated
Comment thread changelog.mdx Outdated
Greptile P2: `RULE NLG` and `RULE UFS` are internal development
identifiers that external readers cannot look up. The surrounding
prose carries the point without them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@indykish indykish merged commit cc1ec3c into main May 11, 2026
4 checks passed
@indykish indykish deleted the feat/m66-001-byok-retirement-docs branch May 11, 2026 05:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant