Skip to content

feat(dogfood): expand block-authored surfaces#116

Merged
flyingrobots merged 22 commits into
mainfrom
cycle/df-071-dogfood-block-authored-surfaces
May 25, 2026
Merged

feat(dogfood): expand block-authored surfaces#116
flyingrobots merged 22 commits into
mainfrom
cycle/df-071-dogfood-block-authored-surfaces

Conversation

@flyingrobots
Copy link
Copy Markdown
Owner

@flyingrobots flyingrobots commented May 25, 2026

Summary

Expands DOGFOOD's block-authored product surface coverage after DF-070.

This stack adds local DOGFOOD block contracts for frame-adjacent surfaces, routes selected visible DOGFOOD chrome through those contracts, and publishes a registry-backed DOGFOOD Surface Blocks page so the app can inspect which product surfaces are now block-authored.

What changed

  • Added DF-071 design/bearing docs for DOGFOOD block-authored surfaces.
  • Added DOGFOOD block contracts for footer hints, search panel, notifications, perf HUD, help overlay, and command palette.
  • Routed footer hints, landing title, and search title through local block render paths.
  • Added a generated DOGFOOD Surface Blocks inventory page under Blocks.
  • Added behavior coverage for registry-backed DOGFOOD surface inventory and search chrome.
  • Updated CHANGELOG and i18n debt baseline for the intentional new DOGFOOD surface inventory strings.

Architectural boundary

These blocks are semantic DOGFOOD product contracts, not an AppFrame renderer fork. Generic overlay rendering still belongs to bijou-tui; DOGFOOD owns declared block identity, data requirements, command intents, and inspection inventory.

Non-goals

  • no AppFrame renderer fork
  • no provider lifecycle implementation
  • no command dispatch rewrite
  • no hidden global block registry
  • no localization runtime rewrite
  • no broad visual redesign

Validation

  • npm test -- --run tests/cycles/DF-069/dogfood-block-registry.test.ts tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts
  • npm run docs:inventory
  • npm run typecheck:test
  • git diff --check
  • npm run lint
  • npm test — 313 files, 3526 tests passed
  • npm run verify:interactive-examples
  • Pre-push hook reran npm run typecheck:test, full npm test, and npm run verify:interactive-examples

Summary by CodeRabbit

  • New Features

    • Added DOGFOOD Surface Blocks inventory guide with semantic surface documentation.
    • Routed shell footer hints and search title text through configurable semantic blocks.
    • Implemented new semantic surface blocks for notifications, performance HUD, keyboard help, and command palette.
  • Bug Fixes

    • Fixed surface inventory page text sourcing from localization tables instead of raw English.
    • Corrected landing screen background painting to prevent custom terminal theme colors from leaking.
    • Fixed frame pane foreground colors when using semantic block backgrounds with custom terminal themes.
  • Documentation

    • Updated product roadmap and design documentation for block-authored surfaces.
    • Enhanced localization coverage across multiple languages.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 25, 2026

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've used your available PR reviews for now.

Your plan includes 1 review of capacity. Refill in 59 minutes and 31 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b940a263-40c7-4c47-8784-9dea131f4487

📥 Commits

Reviewing files that changed from the base of the PR and between 9420a4b and 46f15d9.

⛔ Files ignored due to path filters (1)
  • examples/docs/i18n/source/dogfood-strings.csv is excluded by !**/*.csv
📒 Files selected for processing (7)
  • docs/CHANGELOG.md
  • examples/docs/app.ts
  • examples/docs/i18n/catalogs/de/bijou.dogfood.json
  • examples/docs/i18n/catalogs/en/bijou.dogfood.json
  • examples/docs/i18n/catalogs/es/bijou.dogfood.json
  • examples/docs/i18n/catalogs/fr/bijou.dogfood.json
  • scripts/docs-preview.test.ts
📝 Walkthrough

Walkthrough

This PR implements DF-071 DOGFOOD Block-Authored Surfaces by introducing six new semantic block contracts (search panel, notification center, performance HUD, help overlay, command palette, footer hints), integrating them throughout the docs app with rendering helpers and an auto-generated surface inventory guide, updating tests and i18n baselines, and fixing frame surface painting to prevent terminal background colors from leaking into Bijou-owned surfaces.

Changes

DOGFOOD Block-Authored Surfaces

Layer / File(s) Summary
Design and documentation
docs/BEARING.md, docs/CHANGELOG.md, docs/design/DF-071-dogfood-block-authored-surfaces.md, docs/legends/DF-dogfood-field-guide.md
Roadmap shifts focus from DF-070 to DF-071; new design spec defines separation of concerns and rollout plan; CHANGELOG documents new block routes (footer hints, search title, notifications, perf HUD, help, command palette, surface inventory) and bug fixes for i18n sourcing and frame painting.
Block type system and config interfaces
examples/docs/dogfood-blocks.ts
DOGFOOD block role catalog extended with search, notifications, diagnostics, help, commands, footer; DogfoodBlockRole union updated; new exported config interfaces for each block type.
Block contracts and registry setup
examples/docs/dogfood-blocks.ts
Six block contracts defined with requirements, view-data, and command intents; registry entry constants added mapping blocks to roles and surface IDs; registry coverage updated and entries wired into defaultDogfoodBlockRegistry.
Block render implementations
examples/docs/dogfood-blocks.ts
Render functions for all six blocks with mode-aware outputs (pipe/accessible vs interactive/static) and per-block state facts.
Guide content system and inventory generator
examples/docs/app.ts, examples/docs/dogfood-blocks.ts
GuideDoc interface gains optional localization callbacks; new blocks-dogfood-surfaces guide sourcing localized content from dogfoodSurfaceBlockInventoryMarkdown generator that enumerates registry entries; localized guide state helpers for navigation.
Guide UI rendering with localized content
examples/docs/app.ts
Guide navigator, reader, and inspector panes updated to use localized guide metadata instead of raw text.
Landing panel visuals and title rendering
examples/docs/app.ts
Landing background, logo, and wordmark painting now apply explicit Bijou-owned background tokens; landing DOGFOOD panel refactored to render title via titleScreenBlock; panel styling updated with proper background and border tokens.
Footer hints and search title rendering
examples/docs/app.ts
New render helpers (renderDocsFooterHint, renderDocsSearchTitle) pipe block outputs for footer and search; buildDocsFooterHint updated to return rendered text; searchTitle wiring updated for components and guide pages.
Frame surface background and foreground painting
packages/bijou-tui/src/app-frame-render.ts, packages/bijou-tui/src/app-frame-render.test.ts
fillSurfaceBackground uses backgroundToken foreground; applySurfaceBackground now selectively sets missing bg/fg per-cell with character normalization; test added verifying painted colors match frame surface.
Tests and i18n baseline updates
tests/cycles/DF-069/, tests/cycles/DF-071/, tests/cycles/DX-031/, scripts/docs-preview.test.ts, examples/docs/i18n/catalogs/*
DF-069 registry tests expanded with search, notifications, perf HUD, help, command palette, footer; new DF-071 integration tests validating surface inventory and search title; DX-031 tests updated to expect new guide label; landing and localization tests added; i18n baselines bumped across four languages.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • flyingrobots/bijou#115: Implements DF-070 block-authored surface groundwork (proseSurface routing) that this PR builds upon for DF-071 with six new semantic block contracts and app-level integration.
  • flyingrobots/bijou#106: Refactors docs app localization via LocalizationPort; this PR extends that foundation with localized guide metadata and dogfood surface inventory text sourcing.
  • flyingrobots/bijou#104: Realigns roadmap narrative in docs/BEARING.md in parallel; this PR similarly updates BEARING but focuses on DF-071 block-authored surfaces scope and expected sequence.

🐰 Six surfaces now speak through Blocks,
Footer hints and searches glide,
Terminal themes no longer leak—
Bijou paints with pride!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title directly reflects the main objective: expanding block-authored surfaces in DOGFOOD. It is concise, specific, and clearly summarizes the primary change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cycle/df-071-dogfood-block-authored-surfaces

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
examples/docs/dogfood-blocks.ts (1)

1794-1824: ⚡ Quick win

Honor the title-only fast path in all modes.

Line 1794 adds title, but Line 1806-1808 only applies that branch in pipe/accessible. In interactive/static, the same title-only config falls back to debug-style output, which can break search chrome title routing.

💡 Proposed patch
 function renderSearchPanelBlock(
   input: BlockRenderInput<SearchPanelBlockConfig>,
 ): BlockRenderResult<string> {
   const title = input.config?.title;
   const query = input.config?.query ?? '';
   const resultCount = input.config?.resultCount ?? 0;
   const activeResultLabel = input.config?.activeResultLabel ?? 'none';
   const queryLabel = query.trim() === '' ? 'empty' : query;
   const titleOnly = title != null
     && query.trim() === ''
     && resultCount === 0
     && activeResultLabel === 'none';
+  const facts = [
+    { kind: 'entity' as const, key: 'dogfood.block', value: 'SearchPanelBlock' },
+    { kind: 'state' as const, key: 'dogfood.search.resultCount', value: String(resultCount) },
+  ];
+
+  if (titleOnly) {
+    return {
+      output: title,
+      facts,
+    };
+  }

   if (input.mode === 'pipe' || input.mode === 'accessible') {
     return {
-      output: titleOnly
-        ? title
-        : `Search query: ${queryLabel}; results: ${resultCount}; active: ${activeResultLabel}`,
-      facts: [
-        { kind: 'entity', key: 'dogfood.block', value: 'SearchPanelBlock' },
-        { kind: 'state', key: 'dogfood.search.resultCount', value: String(resultCount) },
-      ],
+      output: `Search query: ${queryLabel}; results: ${resultCount}; active: ${activeResultLabel}`,
+      facts,
     };
   }

   return {
@@
-    facts: [
-      { kind: 'entity', key: 'dogfood.block', value: 'SearchPanelBlock' },
-      { kind: 'state', key: 'dogfood.search.resultCount', value: String(resultCount) },
-    ],
+    facts,
   };
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/docs/dogfood-blocks.ts` around lines 1794 - 1824, The title-only
fast path (variable titleOnly) is only honored for input.mode
'pipe'/'accessible' but must apply in all modes; update the logic in
SearchPanelBlock handling so that when titleOnly is true you return the title
string and the same facts regardless of input.mode (i.e., check titleOnly
before/independent of the input.mode branch or add the same title-only
conditional to the final return), referencing the titleOnly variable and the
output/facts structures so interactive/static modes do not fall back to
debug-style output.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/docs/dogfood-blocks.ts`:
- Around line 1837-1840: The returned output string for the pipe/accessible
branch uses the incorrect phrase "Notifications items"; update the string in the
block that checks input.mode === 'pipe' || input.mode === 'accessible' so it
reads "Notification items: ${notificationCount}; filter: ${activeFilterLabel}"
(change "Notifications" to singular "Notification" in the output property).

---

Nitpick comments:
In `@examples/docs/dogfood-blocks.ts`:
- Around line 1794-1824: The title-only fast path (variable titleOnly) is only
honored for input.mode 'pipe'/'accessible' but must apply in all modes; update
the logic in SearchPanelBlock handling so that when titleOnly is true you return
the title string and the same facts regardless of input.mode (i.e., check
titleOnly before/independent of the input.mode branch or add the same title-only
conditional to the final return), referencing the titleOnly variable and the
output/facts structures so interactive/static modes do not fall back to
debug-style output.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7aab30e7-44d0-4a19-b653-98bd7cbd0e6f

📥 Commits

Reviewing files that changed from the base of the PR and between 3b9d719 and 1df8d59.

📒 Files selected for processing (10)
  • docs/BEARING.md
  • docs/CHANGELOG.md
  • docs/design/DF-071-dogfood-block-authored-surfaces.md
  • docs/legends/DF-dogfood-field-guide.md
  • examples/docs/app.ts
  • examples/docs/dogfood-blocks.ts
  • examples/docs/i18n-debt.ts
  • tests/cycles/DF-069/dogfood-block-registry.test.ts
  • tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts
  • tests/cycles/DX-031/dogfood-blocks-section.test.ts

Comment thread examples/docs/dogfood-blocks.ts
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
examples/docs/app.ts (1)

3975-3975: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Localize the guide-page search title template.

Hardcoding Search ${...} here bakes English grammar and casing into the UI, and toLowerCase() can mangle localized page titles. Please route this through dogfoodText(...) with a {pageTitle} placeholder and pass the localized page title through unchanged.

Suggested direction
-        searchTitle: () => renderDocsSearchTitle(`Search ${pageTitle(spec.id, localization).toLowerCase()}`),
+        searchTitle: () => renderDocsSearchTitle(dogfoodText(
+          localization,
+          'docs.search.pageTitle',
+          'Search {pageTitle}',
+          { pageTitle: pageTitle(spec.id, localization) },
+        )),

Also add the matching catalog entry/baseline update.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/docs/app.ts` at line 3975, Replace the hardcoded English search
template in the searchTitle assignment: stop using string interpolation with
"Search ${...}" and remove the .toLowerCase() call on pageTitle; instead call
dogfoodText with a template key that includes a {pageTitle} placeholder and pass
pageTitle(spec.id, localization) as the placeholder value, then feed that result
into renderDocsSearchTitle (i.e., use dogfoodText("some.key.searchGuidePage", {
pageTitle: pageTitle(spec.id, localization) }) and pass that to
renderDocsSearchTitle). Update the related catalog entry/baseline to add the new
localization key and baseline text for the search title.
🧹 Nitpick comments (1)
scripts/docs-preview.test.ts (1)

210-218: 💤 Low value

Consider clarifying the test name to match its scope.

The test name suggests it validates "landing title cells" specifically, but the implementation checks every cell in the entire landing frame. While this comprehensive validation aligns well with the PR's frame surface painting fixes, a more precise name would improve clarity for future maintainers.

Consider renaming to something like:

  • 'ensures all cells in the landing frame have Bijou-owned backgrounds'
  • 'keeps every landing frame cell on a Bijou-owned background'
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/docs-preview.test.ts` around lines 210 - 218, The test name it('keeps
every landing title cell on a Bijou-owned background', ...) is misleading
because the body checks all cells on the landing frame; rename the test title to
match the scope (e.g. "ensures all cells in the landing frame have Bijou-owned
backgrounds" or "keeps every landing frame cell on a Bijou-owned background")
while leaving the implementation using createTestContext, createDocsApp,
runScript, and the assertion against cellsWithoutBackground(frame) unchanged so
future maintainers can immediately understand the test's intent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@examples/docs/app.ts`:
- Line 3975: Replace the hardcoded English search template in the searchTitle
assignment: stop using string interpolation with "Search ${...}" and remove the
.toLowerCase() call on pageTitle; instead call dogfoodText with a template key
that includes a {pageTitle} placeholder and pass pageTitle(spec.id,
localization) as the placeholder value, then feed that result into
renderDocsSearchTitle (i.e., use dogfoodText("some.key.searchGuidePage", {
pageTitle: pageTitle(spec.id, localization) }) and pass that to
renderDocsSearchTitle). Update the related catalog entry/baseline to add the new
localization key and baseline text for the search title.

---

Nitpick comments:
In `@scripts/docs-preview.test.ts`:
- Around line 210-218: The test name it('keeps every landing title cell on a
Bijou-owned background', ...) is misleading because the body checks all cells on
the landing frame; rename the test title to match the scope (e.g. "ensures all
cells in the landing frame have Bijou-owned backgrounds" or "keeps every landing
frame cell on a Bijou-owned background") while leaving the implementation using
createTestContext, createDocsApp, runScript, and the assertion against
cellsWithoutBackground(frame) unchanged so future maintainers can immediately
understand the test's intent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 66c9d00d-7b8e-4a24-a051-9ae8c17d69e4

📥 Commits

Reviewing files that changed from the base of the PR and between ef6d71e and 750130b.

📒 Files selected for processing (6)
  • docs/CHANGELOG.md
  • examples/docs/app.ts
  • examples/docs/dogfood-blocks.ts
  • scripts/docs-preview.test.ts
  • tests/cycles/DF-069/dogfood-block-registry.test.ts
  • tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts
✅ Files skipped from review due to trivial changes (1)
  • docs/CHANGELOG.md

@flyingrobots
Copy link
Copy Markdown
Owner Author

@codex Self-review findings for this branch:

Severity File Lines Issue Recommended mitigation
P2 examples/docs/i18n-debt.ts, examples/docs/app.ts examples/docs/i18n-debt.ts:50, examples/docs/app.ts:971 The branch raises the DOGFOOD i18n debt baseline (total is now 2009 and docs-app is now 315) while adding the visible DOGFOOD Surface Blocks page from raw English strings in dogfoodSurfaceBlockInventoryMarkdown(). That weakens the locale ratchet and lets newly added user-facing DOGFOOD copy bypass the string table/catalog path. Move the new inventory page labels/body copy through the DOGFOOD localization catalog/string-table workflow, regenerate catalogs, then lower or restore the debt baseline instead of ratcheting it upward.

Please confirm whether this should be fixed on this PR before merge.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 750130bf5b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread examples/docs/app.ts Outdated
@flyingrobots
Copy link
Copy Markdown
Owner Author

@codex Addressed the self-review P2 localization ratchet finding in 9420a4b. The DOGFOOD surface block inventory page now resolves its title, summary, body copy, headings, and detail labels through the DOGFOOD string table/runtime catalogs. Added a docs-preview regression that renders the page with a pseudo-localized DOGFOOD catalog, regenerated locale catalogs, and lowered the i18n debt baseline back to the actual count (1993 total / 299 docs-app). Validation: focused docs-preview regression, full docs-preview suite, dogfood i18n debt/export tests, dogfood:i18n:check, dogfood:i18n:debt, typecheck:test, docs:inventory, git diff --check, lint, and pre-push full npm test + interactive example smoke.

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

Testing

  • git diff --check
  • ⚠️ npm test -- --run scripts/docs-preview.test.ts tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts (fails in this environment before test execution due to unresolved local package entry for @flyingrobots/bijou-tui)

Committed on current branch:

  • a8050f0fix(dogfood): localize guide search title template

I also created the PR record via make_pr with a stacked follow-up title/body summarizing these changes.

View task →

@flyingrobots
Copy link
Copy Markdown
Owner Author

Severity File Lines Issue Recommended mitigation
P2 examples/docs/app.ts / examples/docs/dogfood-blocks.ts / examples/docs/i18n-debt.ts app.ts:984-1040, dogfood-blocks.ts:1390-1483, i18n-debt.ts:39-46 @codex The DOGFOOD surface inventory page now localizes its page chrome, but it still renders entry.description ?? metadata.docs.summary from registry metadata. The new visible registry descriptions are raw English strings, and the i18n debt source list does not include examples/docs/dogfood-blocks.ts, so this bypasses the locale catalog/ratchet entirely. npm run dogfood:i18n:debt remains green at 1993 even though the rendered inventory can show these new English descriptions. Add DOGFOOD block registry text to the localization workflow: either catalog the visible registry descriptions/summaries and resolve them through dogfoodText(...), or add examples/docs/dogfood-blocks.ts to the i18n debt inventory with intentional exclusions for stable identifiers. Add a pseudo-locale behavior test that fails if the inventory detail descriptions remain raw English.

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

  • Added examples/docs/dogfood-blocks.ts to the DOGFOOD i18n debt source inventory so block-registry user-facing strings are now included in ratchet accounting. examples/docs/i18n-debt.tsL41-L49
  • Updated the explicit DOGFOOD i18n debt baseline to include the newly-accounted dogfood-blocks surface (575) and adjusted total baseline to 2568. examples/docs/i18n-debt.tsL51-L60
  • Strengthened the pseudo-locale docs-preview regression for the DOGFOOD surface inventory page by asserting it does not leak a known raw-English registry description. scripts/docs-preview.test.tsL263-L267

Testing

  • npm run dogfood:i18n:debt
  • ⚠️ npm test -- --run scripts/docs-preview.test.ts scripts/dogfood-i18n-debt.test.ts (fails in this environment due to unresolved local package entry for @flyingrobots/bijou-tui before scripts/docs-preview.test.ts executes; scripts/dogfood-i18n-debt.test.ts passes)

Committed on current branch:

  • ba49647fix(dogfood): track registry copy in i18n debt ratchet

Also completed per instructions:

  • Created PR metadata with make_pr using a stacked follow-up title/body for these on-top changes.

View task →

@flyingrobots
Copy link
Copy Markdown
Owner Author

@codex Addressed the DOGFOOD surface inventory localization gap in 46f15d95.

Issue Severity Fix Regression
Inventory descriptions rendered raw English outside the DOGFOOD catalog path P2 Routed registry descriptions through dogfoodText(...) with blocks.surfaceInventory.entry.<surfaceId>.description keys, added CSV rows, regenerated per-locale catalogs, and updated CHANGELOG wording. scripts/docs-preview.test.ts pseudo-locale inventory assertion; npm test -- --run tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts scripts/docs-preview.test.ts packages/bijou-tui/src/app-frame-render.test.ts

Validation after the fix:

  • npm test -- --run tests/cycles/DF-071/dogfood-block-authored-surfaces.test.ts scripts/docs-preview.test.ts packages/bijou-tui/src/app-frame-render.test.ts
  • npm run dogfood:i18n:check
  • npm run dogfood:i18n:debt
  • npm run typecheck:test
  • npm run docs:inventory
  • git diff --check
  • npm run lint
  • npm test
  • Pre-push reran npm run typecheck:test, full npm test, and npm run verify:interactive-examples -- --skip-build --mode=interactive-scripted successfully.

✅ Addressed in commits: 46f15d95

@chatgpt-codex-connector
Copy link
Copy Markdown

Acknowledged — the trigger indicates the localization gap was already fixed in commit 46f15d95, and this branch is currently at 46f15d9 with no additional uncommitted changes.

I verified the branch state with:

  • git status --short (clean working tree)
  • git log --oneline -n 5 (shows 46f15d9 Fix: localize dogfood block inventory descriptions at HEAD)

No new code changes were needed, so I did not create a new commit and did not call make_pr.

View task →

@flyingrobots flyingrobots merged commit 097a59f into main May 25, 2026
7 checks passed
@flyingrobots flyingrobots deleted the cycle/df-071-dogfood-block-authored-surfaces branch May 25, 2026 11:39
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