Skip to content

feat(web): move docs/sandbox and docs/web onto the dictionary spine (#5337) - #5520

Merged
Hmbown merged 6 commits into
Hmbown:mainfrom
Lstarsky0:feat/docs-sandbox-web
Aug 20, 2026
Merged

feat(web): move docs/sandbox and docs/web onto the dictionary spine (#5337)#5520
Hmbown merged 6 commits into
Hmbown:mainfrom
Lstarsky0:feat/docs-sandbox-web

Conversation

@Lstarsky0

Copy link
Copy Markdown
Contributor

Next group in the #5337 series, after #5517. docs/sandbox and docs/web carried 14 and 15 isZh branches; both are now zero. Same shape as before: two dictionaries per page, types.ts and index.ts wired, and both files added to check-locales.mjs's OPTIONAL_FILES so zh is held to key and token parity while the other sixteen locales fall back to English exactly as the ternaries did.

The sandbox_mode values that the policies paragraph typesets as inline <code>, and the commands and flags on the browser-client page, stay code-owned and reach the dictionaries as {token}s. Two of the sandbox tokens appear twice in the same sentence, which splitTokens handles but check-locales.mjs cannot see — it compares token sets — so the unit test asserts the full ordered list instead.

The platform rows are the one place I did not use a code-owned key. Their headings are translated (Linux · opt-in bubblewrap / Linux · 可选 bubblewrap), so they are copy, and the row key stays the name as it was before. The test only asserts the count for that list.

Rendered output is unchanged. I compared all 36 pages (18 locales × 2) against a clean worktree at the same base, and this time kept the inline tags and their class attributes in the comparison instead of flattening every tag to a space. That matters: the flattened form cannot tell 、<code>danger-full-access</code> from 、 <code>danger-full-access</code>, and the zh policies sentence has a space on one side of a code span and not the other, because of where the old JSX wrapped its lines. The difference is empty. As a control, three one-word edits — one in a token sentence, one in an array row, one in a plain string — do get reported.

npm run lint, npm test (312 passing) and npm run check:locales are clean.

No-Issue: one page group of the #5337 series — the epic stays open until the last group lands.

@Lstarsky0
Lstarsky0 requested a review from Hmbown as a code owner August 20, 2026 04:42
@github-actions

Copy link
Copy Markdown
Contributor

Thanks @Lstarsky0 for taking the time to contribute.

This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered.

Please read CONTRIBUTING.md for the expected contribution shape. A maintainer can grant recurring PR access by commenting /lgtm on a pull request.

…mbown#5337)

Both pages carried 14 and 15 isZh branches; both are now zero. Same
shape as Hmbown#5504 and Hmbown#5517: an en and a zh dictionary per page, wired
through types.ts and index.ts, and both files added to
check-locales.mjs's OPTIONAL_FILES so zh is held to key and token
parity while the other sixteen locales fall back to English.

The config values the policies paragraph typesets as inline code, and
the commands and flags on the browser-client page, stay code-owned in
the page and reach the dictionaries as {token}s, per docs/VOICE.md.

Rendered output is unchanged across all 36 pages (18 locales x 2).
@Lstarsky0
Lstarsky0 force-pushed the feat/docs-sandbox-web branch from 81c1913 to 7f1fb21 Compare August 20, 2026 05:25
@Lstarsky0

Copy link
Copy Markdown
Contributor Author

The Test (windows-latest) failures here are not from this branch. main's own run 32334932574 fails the same job with the same 11 panicking tests — the set difference against this PR's run is empty, and this PR touches no Rust at all, only web/.

The earlier Version drift red was a timing artifact of the same kind: that run was created at 05:14:27Z and 1d14092 landed at 05:15:29Z, so it merged against main between de823c672 making cancellation authoritative and the test expectations being settled. It has been rebased since.

@Lstarsky0

Copy link
Copy Markdown
Contributor Author

Test (macos-latest) is the same origin. I checked main's tip (1d14092) out into a clean worktree on a local macOS box — nothing from this branch in the tree — and ran the eleven tests that failed here: ten fail there too, same file:line, same messages. Only tui::onboarding::tests::progress_counts_only_required_decisions passes locally. The clearest of the group is project_context.rs:1827, which compares /private/var/…/AGENTS.md against /var/…/AGENTS.md — macOS TMPDIR sits under the /var symlink, and the assertion has a canonicalized path on one side and tempdir().path() on the other.

Separately: the reason a TypeScript-only PR runs the Rust workspace on macOS and Windows at all is that the changes case has no web/* arm, so all ten files fall through to the fail-safe *) and set heavy=true. Everything covering web/ is already ungated — web.yml has no paths: filter, and check-locales.mjs in lint is gated only on event_name != 'schedule' — and no crate includes anything from the root web/ (the embedded client is crates/tui/src/runtime_web/, a different tree). Happy to send that one-line arm if you want it.

Hmbown and others added 2 commits August 19, 2026 23:08
Hmbown#5517 merged after v0.9.10 was cut and left no changelog entry, so
check-feature-release-notes.sh fails on any feature commit whose message
mentions it, including this branch's. crates/tui/CHANGELOG.md is the
sync-changelog.sh slice of the same entry.

Signed-off-by: Lstarsky0 <59827030+Lstarsky0@users.noreply.github.com>
@Lstarsky0

Copy link
Copy Markdown
Contributor Author

Version drift was mine. The new check-feature-release-notes.sh wants a changelog receipt for every issue a feat: commit references, and my commit body names #5517, which merged after v0.9.10 was cut and never got an entry. Added one under [Unreleased] plus its sync-changelog.sh slice — check-versions.sh and the eight release-helper contract tests are green locally.

Lint & Type Check is not mine: main's own run at d53617f fails the same single case, vocabulary.test.ts > describes the first session truthfully, on the same docs/GUIDE.md assertion.

Hmbown added a commit that referenced this pull request Aug 20, 2026
PR #5517 shipped docs/constitution and docs/runtime-api onto the typed
dictionary spine and merged into this release, but the 0.9.10 Contributors
section never named it. The new feature-release-note gate catches this on
any branch whose commits reference #5517 — including Lstarsky0's follow-up
PR #5520, where the honest fix is to record the receipt rather than delete
the contributor's reference to their own earlier work.

The entry states what actually landed: 28 inline `isZh` branches replaced
by typed English and Chinese dictionaries held to key and token parity,
with the other sixteen locales keeping the English fallback.

crates/tui/CHANGELOG.md regenerated with ./scripts/sync-changelog.sh.

Signed-off-by: Hunter Bown <hmbown@gmail.com>
Hmbown added 3 commits August 19, 2026 23:26
…eased

Lstarsky0's receipt landed in `[Unreleased]`, but v0.9.10 is not tagged
yet, so everything on main ships in it. generate-release-body.sh extracts
only the `[<version>]` section, which means an `[Unreleased]` entry would
be dropped from the 0.9.10 release body — the exact disappearance that
check-feature-release-notes.sh was written to catch.

Move the entry beside its sibling phase in 0.9.10 `### Added` and adopt
that section's established shape, so Hmbown#5504 and Hmbown#5517 now read alike. The
wording, the epic framing, and the contributor's own commit are kept; only
the placement changes. main already carries the matching Contributors
credit line.

crates/tui/CHANGELOG.md regenerated with ./scripts/sync-changelog.sh.

Signed-off-by: Hunter Bown <hmbown@gmail.com>
@Hmbown
Hmbown merged commit 22b5b3f into Hmbown:main Aug 20, 2026
21 checks passed
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.

2 participants