Repository navigation
Local pages: a command-center page for lanes, PR waves, tokens, skills, manifests and owner items - #1012
Local pages: a command-center page for lanes, PR waves, tokens, skills, manifests and owner items#1012seathatflowsinourveins wants to merge 10 commits into
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b209afe803
ℹ️ 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".
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 50977b00be
ℹ️ 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".
50977b0 to
2dfb3c8
Compare
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2dfb3c8 to
bdc0978
Compare
…RTK figure RTK's, and close the token-report and long-token mask gaps Round 2 of #1012, from the CC's adjudication of the Claude micro at 50977b0. Each fix has a test that fails at 2dfb3c8: - An hcom roster that Fleet tracking could not read (fleet_data's UNKNOWN shape, or no tracking) renders its gap with the producer's status and reason, so Sessions reads partial instead of wired (Codex :156). - token_tools_now.py destination() checks both the absolute path and its resolve(), as tools/skill-usage/render_units.py _external_path does, so a parent or ancestor that reaches the checkout through a symlink is refused before any tool runs (Codex :160). - The count strip takes the RTK figure only from RTK's token-tools row, the token-window report whose name names RTK, or cc-now token_efficiency.rtk, and otherwise reads UNKNOWN. Mapping order no longer lets another tool's report stand in for it (Codex :1144). - token_tools_now.py passes dict keys as well as values through the shared sanitizer, whose sanitize() projects values only, so the docstring's claim now holds. Two keys that project to one text keep both entries. - A token over 4,096 characters is not decoded, so the shared email mask also matches the encoded at-sign and dot forms in place (%40, %2540, @ with or without its semicolon, @, @, %2E, ., .), as b209afe's page-local mask did for %40 and @. - The shared email mask no longer reads a systemd template-unit name such as [email protected] as an address: its last part may not be one of the eleven unit types systemd.unit(5) lists at systemd 259. Since the round-1 mask (50977b0), nine such paths on three architecture layer pages rendered as "[email omitted]". The local-pages README states each behavior. Co-Authored-By: Claude Opus 5.5 <[email protected]>
bdc0978 to
a737ef9
Compare
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…RTK figure RTK's, and close the token-report and long-token mask gaps Round 2 of #1012, from the CC's adjudication of the Claude micro at 50977b0. Each fix has a test that fails at 2dfb3c8: - An hcom roster that Fleet tracking could not read (fleet_data's UNKNOWN shape, or no tracking) renders its gap with the producer's status and reason, so Sessions reads partial instead of wired (Codex :156). - token_tools_now.py destination() checks both the absolute path and its resolve(), as tools/skill-usage/render_units.py _external_path does, so a parent or ancestor that reaches the checkout through a symlink is refused before any tool runs (Codex :160). - The count strip takes the RTK figure only from RTK's token-tools row, the token-window report whose name names RTK, or cc-now token_efficiency.rtk, and otherwise reads UNKNOWN. Mapping order no longer lets another tool's report stand in for it (Codex :1144). - token_tools_now.py passes dict keys as well as values through the shared sanitizer, whose sanitize() projects values only, so the docstring's claim now holds. Two keys that project to one text keep both entries. - A token over 4,096 characters is not decoded, so the shared email mask also matches the encoded at-sign and dot forms in place (%40, %2540, @ with or without its semicolon, @, @, %2E, ., .), as b209afe's page-local mask did for %40 and @. - The shared email mask no longer reads a systemd template-unit name such as [email protected] as an address: its last part may not be one of the eleven unit types systemd.unit(5) lists at systemd 259. Since the round-1 mask (50977b0), nine such paths on three architecture layer pages rendered as "[email omitted]". The local-pages README states each behavior. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…pt unit types against the public suffix list The final correction for #1012, from the CC's adjudication of the Claude micro at bdc0978: - target is a delegated top-level domain (the installed public suffix list, publicsuffix 20260129.1928-1, lines 10339-10341). Exempting it as a systemd unit type left an address there readable in its plain, %40 and @ forms. It leaves the exempt list, which keeps the other ten of the eleven types in systemd.unit(5). - A class-guard test intersects the exempt types with the installed public suffix list and fails on any overlap. It skips, giving its reason, when the list is absent. - The sanitizer docstring and comment and the local-pages README name exactly the exempt types. The README also lists the forms the mask matches in place in a token over 4,096 characters, and says other encodings there stay as written. Both new tests fail at bdc0978 (4 failures) and pass here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a737ef9863
ℹ️ 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".
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…RTK figure RTK's, and close the token-report and long-token mask gaps Round 2 of #1012, from the CC's adjudication of the Claude micro at 50977b0. Each fix has a test that fails at 2dfb3c8: - An hcom roster that Fleet tracking could not read (fleet_data's UNKNOWN shape, or no tracking) renders its gap with the producer's status and reason, so Sessions reads partial instead of wired (Codex :156). - token_tools_now.py destination() checks both the absolute path and its resolve(), as tools/skill-usage/render_units.py _external_path does, so a parent or ancestor that reaches the checkout through a symlink is refused before any tool runs (Codex :160). - The count strip takes the RTK figure only from RTK's token-tools row, the token-window report whose name names RTK, or cc-now token_efficiency.rtk, and otherwise reads UNKNOWN. Mapping order no longer lets another tool's report stand in for it (Codex :1144). - token_tools_now.py passes dict keys as well as values through the shared sanitizer, whose sanitize() projects values only, so the docstring's claim now holds. Two keys that project to one text keep both entries. - A token over 4,096 characters is not decoded, so the shared email mask also matches the encoded at-sign and dot forms in place (%40, %2540, @ with or without its semicolon, @, @, %2E, ., .), as b209afe's page-local mask did for %40 and @. - The shared email mask no longer reads a systemd template-unit name such as [email protected] as an address: its last part may not be one of the eleven unit types systemd.unit(5) lists at systemd 259. Since the round-1 mask (50977b0), nine such paths on three architecture layer pages rendered as "[email omitted]". The local-pages README states each behavior. Co-Authored-By: Claude Opus 5.5 <[email protected]>
a737ef9 to
d5bf784
Compare
…pt unit types against the public suffix list The final correction for #1012, from the CC's adjudication of the Claude micro at bdc0978: - target is a delegated top-level domain (the installed public suffix list, publicsuffix 20260129.1928-1, lines 10339-10341). Exempting it as a systemd unit type left an address there readable in its plain, %40 and @ forms. It leaves the exempt list, which keeps the other ten of the eleven types in systemd.unit(5). - A class-guard test intersects the exempt types with the installed public suffix list and fails on any overlap. It skips, giving its reason, when the list is absent. - The sanitizer docstring and comment and the local-pages README name exactly the exempt types. The README also lists the forms the mask matches in place in a token over 4,096 characters, and says other encodings there stay as written. Both new tests fail at bdc0978 (4 failures) and pass here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…R rows, keep unmeasured skill defects unknown The final commit of #1012's last wave. It folds Astra's first read of a737ef9 (CHANGES_REQUESTED: one P1 and two P2s) into the wording commit the final Claude delta asked for. - P1: the shared email mask now takes the whole local part RFC 5322 section 3.4.1 allows: a quoted string such as "reviewer"@example.org, whose quotes may be percent- or entity-encoded, or a run of atext from its first letter or digit, including ! ' { } = ? and &. The slash is left out, so a URL path such as /@handle is not read as an address. CPython's address parser accepts both forms (Lib/email/_parseaddr.py getaddrspec, lines 365-379, and getquote, line 463, at the v3.13.16 mirror cbc944f4). - The mask reads the whole text with each token decoded, so a local part split across tokens by a quote, space or apostrophe is found whole. - It masks exactly where decoding changed nothing, and omits whole any decoded token the address touches. - It is anchored at the at sign, and a backslash in a quoted local part always opens a quoted pair, so its cost is linear. text() on a 16,000-character run takes 0.003 s, where a737ef9 took 2.5 s under load. This also resolves the 50977b0 micro's (a)5. - A full live build takes 43.2 s, against 41.3 s at a737ef9 from the same state. On 283,448 unique strings from the live inputs, catalogs, manifests and repository Markdown, its output equals a737ef9's. - The pages and token-tools-now.json share the mask. The systemd unit exemptions and the public-string controls are unchanged. - P2: an in_review row that is not an object is rejected with a stated gap naming the count. PR waves reads partial, "No pull requests in review." is kept for a valid empty list, and the count strip counts the accepted rows only. - P2: the number of pinned skills with no 7-day call counts only the skills with a measured 7-day column. With none measured it is null in the receipt and UNKNOWN in the summary and strip. With some measured, the strip reads "N of M measured", and the receipt adds measured_skills and pinned_skills. - From the final Claude delta: the sanitizer docstring and the README say a dotted template-unit instance still masks ([email protected] becomes "[email omitted].service"), and a test pins it. - #1008 merged at 2026-10-11T21:34:23Z (569bbc5) without final-stack.json, so the page's pending label, from one constant, the README and the two pinning assertions read "pending #1007 (#1008 landed 2026-10-11 21:34:23Z)". The regressions use Astra's probe inputs. They check the decoded page, receipt and token report for unique planted local-part and domain text, so they need no address grammar of their own. The 9 new or changed tests fail at a737ef9 (119 failures, counting subtests), and Astra's own three probes fail there and pass here. A guard test runs JSON-escaped shell text before an at sign in a child process with a timeout. It fails on the first draft of the quoted-local pattern, whose backslash had two parses (one live build spent 90 s there), and passes here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ens, skills, manifests and owner items
command_center_view.py renders command-center.html, linked first from the
index and second in the navigation. Its six sections reuse what each refresh
already reads, with no new collector and no new source_policy.json grant:
- Sessions and lanes: the Fleet observation (live Codex lanes, Claude
sessions, reads in flight, parked lanes and the hcom roster's state age)
and cc-now.json cc_agents.running, as "name (task)" text or
{name, task, model} rows.
- PR waves: cc-now.json in_review and landings_today. Optional head, round,
next_gate, blockers and follow_ups fields are documented in the README;
an absent field reads "not recorded".
- Tokens saved: token_efficiency and token_use_24h as the CC reports them,
with the window from the source or a field-name suffix and nothing summed.
Token use by lane is the page's only chart: one hue, bars beside the
numbers in the same table.
- SOTA skill invoke rates: Fleet tracking's per-lane skill_invocations
family, where UNKNOWN stays distinct from zero.
- Compounding manifests: the committed readiness and evidence manifests,
read through ArchitectureReads under the existing architecture_readiness
and architecture_registry grants. Their hashes join the custody table and
the receipt's command_center block.
- Waiting on you: waiting_on_owner, with its detail and dates.
A missing input renders "missing input: <name>", an unapproved manifest
"unreadable (SourcePolicyError)", and a view failure publishes an UNREPORTED
placeholder; none stops the refresh. The token-report manifest, the
skill_usage.py reports and research-queue.tsv read "not wired" (no grant),
and the final-stack manifest "pending #1007". After the shared sanitizer the
page also masks email addresses.
tests/test_local_pages_command_center.py covers the fixture build, stated
gaps, the optional PR fields, the index link and privacy; it reads
LANDING_PROHIBITED_NAMES at test time. Two existing tests now count the new
output.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…RTK figure RTK's, and close the token-report and long-token mask gaps Round 2 of #1012, from the CC's adjudication of the Claude micro at 50977b0. Each fix has a test that fails at 2dfb3c8: - An hcom roster that Fleet tracking could not read (fleet_data's UNKNOWN shape, or no tracking) renders its gap with the producer's status and reason, so Sessions reads partial instead of wired (Codex :156). - token_tools_now.py destination() checks both the absolute path and its resolve(), as tools/skill-usage/render_units.py _external_path does, so a parent or ancestor that reaches the checkout through a symlink is refused before any tool runs (Codex :160). - The count strip takes the RTK figure only from RTK's token-tools row, the token-window report whose name names RTK, or cc-now token_efficiency.rtk, and otherwise reads UNKNOWN. Mapping order no longer lets another tool's report stand in for it (Codex :1144). - token_tools_now.py passes dict keys as well as values through the shared sanitizer, whose sanitize() projects values only, so the docstring's claim now holds. Two keys that project to one text keep both entries. - A token over 4,096 characters is not decoded, so the shared email mask also matches the encoded at-sign and dot forms in place (%40, %2540, @ with or without its semicolon, @, @, %2E, ., .), as b209afe's page-local mask did for %40 and @. - The shared email mask no longer reads a systemd template-unit name such as [email protected] as an address: its last part may not be one of the eleven unit types systemd.unit(5) lists at systemd 259. Since the round-1 mask (50977b0), nine such paths on three architecture layer pages rendered as "[email omitted]". The local-pages README states each behavior. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…pt unit types against the public suffix list The final correction for #1012, from the CC's adjudication of the Claude micro at bdc0978: - target is a delegated top-level domain (the installed public suffix list, publicsuffix 20260129.1928-1, lines 10339-10341). Exempting it as a systemd unit type left an address there readable in its plain, %40 and @ forms. It leaves the exempt list, which keeps the other ten of the eleven types in systemd.unit(5). - A class-guard test intersects the exempt types with the installed public suffix list and fails on any overlap. It skips, giving its reason, when the list is absent. - The sanitizer docstring and comment and the local-pages README name exactly the exempt types. The README also lists the forms the mask matches in place in a token over 4,096 characters, and says other encodings there stay as written. Both new tests fail at bdc0978 (4 failures) and pass here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…R rows, keep unmeasured skill defects unknown The final commit of #1012's last wave. It folds Astra's first read of a737ef9 (CHANGES_REQUESTED: one P1 and two P2s) into the wording commit the final Claude delta asked for. - P1: the shared email mask now takes the whole local part RFC 5322 section 3.4.1 allows: a quoted string such as "reviewer"@example.org, whose quotes may be percent- or entity-encoded, or a run of atext from its first letter or digit, including ! ' { } = ? and &. The slash is left out, so a URL path such as /@handle is not read as an address. CPython's address parser accepts both forms (Lib/email/_parseaddr.py getaddrspec, lines 365-379, and getquote, line 463, at the v3.13.16 mirror cbc944f4). - The mask reads the whole text with each token decoded, so a local part split across tokens by a quote, space or apostrophe is found whole. - It masks exactly where decoding changed nothing, and omits whole any decoded token the address touches. - It is anchored at the at sign, and a backslash in a quoted local part always opens a quoted pair, so its cost is linear. text() on a 16,000-character run takes 0.003 s, where a737ef9 took 2.5 s under load. This also resolves the 50977b0 micro's (a)5. - A full live build takes 43.2 s, against 41.3 s at a737ef9 from the same state. On 283,448 unique strings from the live inputs, catalogs, manifests and repository Markdown, its output equals a737ef9's. - The pages and token-tools-now.json share the mask. The systemd unit exemptions and the public-string controls are unchanged. - P2: an in_review row that is not an object is rejected with a stated gap naming the count. PR waves reads partial, "No pull requests in review." is kept for a valid empty list, and the count strip counts the accepted rows only. - P2: the number of pinned skills with no 7-day call counts only the skills with a measured 7-day column. With none measured it is null in the receipt and UNKNOWN in the summary and strip. With some measured, the strip reads "N of M measured", and the receipt adds measured_skills and pinned_skills. - From the final Claude delta: the sanitizer docstring and the README say a dotted template-unit instance still masks ([email protected] becomes "[email omitted].service"), and a test pins it. - #1008 merged at 2026-10-11T21:34:23Z (569bbc5) without final-stack.json, so the page's pending label, from one constant, the README and the two pinning assertions read "pending #1007 (#1008 landed 2026-10-11 21:34:23Z)". The regressions use Astra's probe inputs. They check the decoded page, receipt and token report for unique planted local-part and domain text, so they need no address grammar of their own. The 9 new or changed tests fail at a737ef9 (119 failures, counting subtests), and Astra's own three probes fail there and pass here. A guard test runs JSON-escaped shell text before an at sign in a child process with a timeout. It fails on the first draft of the quoted-local pattern, whose backslash had two parses (one live build spent 90 s there), and passes here. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codex at a737ef9 (P2): the skills table headed the child-usage.mjs counts "Claude main sessions, 7 d" and "Claude subagents, 7 d", but those counts are Skill tool calls. child-usage.mjs bumps skill_calls once per invocation (examples/claude-native/workflows/child-usage.mjs:3101) and sums them per child (:3158), so a session that invokes a skill twice counts twice. The two tables now read "Claude calls in main sessions, 7 d" and "Claude calls in subagents, 7 d". The producer label and the local-pages README say calls too. The assertion that pins the header fails at d5bf784. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…gests The terminal commit of #1012 under the rule-4 ruling on 51f85b5, with Astra's delta read of 51f85b5 (two P1s) folded in. - B1: from each at sign, the walk back over atext stops after 256 characters (RFC 5321 section 4.5.3.1.1 limits a local part to 64 octets) and never passes the address before it. The reviewer's three adversarial 50,000-character forms (%40 and @ written in atext, and apostrophe-joined %252540 tokens) take 0.025, 0.023 and 0.023 s, where 51f85b5 takes 12.1, 10.0 and 4.3 s (same host, load 29). The docstring and README now say the bound is what makes the cost linear, and that a local part over 256 characters keeps its leading part visible. - B2: overlapping or touching matches merge from their earliest start, so "w1 [email protected]"@d2.example.org is omitted whole. - C: a JSON-escaped quote (\") opens and closes a quoted local part, so \"w1 w2\"@d.example.org in serialized JSON masks like its decoded form. After masking, a value that still holds an at sign, raw or encoded (%40, %2540, @, @, \u0040), followed by a domain, directly after a word character or after a quote with only whitespace between, is dropped whole and reads RESIDUE_OMITTED. The command-center page counts those values in its header and names their sections partial. - Astra P1 1: an empty quoted local part ("") and a punctuation-only dot-atom (!!!) are valid (CPython Lib/email/_parseaddr.py getaddrspec :365-385, getatom :475-493 and getdelimited :449 at v3.13.16, cbc944f4), so the mask takes any nonempty atext run and quoted strings of 0 to 256 characters. Leading backticks open a Markdown code span, replacing the letter-or-digit rule, so `@AGENTS.md` stays. - Astra P1 2 (#161): sources.html published the SHA-256 of private raw bytes: the seven command-center state inputs, cc-now.json and adoption-now.json. A digest of raw bytes would confirm a guessed masked value. The receipt marks those inputs private and keeps their digests; the composer's pages show "private state input; this page withholds its digest, which the nonserved receipt keeps". Out of this commit's scope, and unchanged from main: sources.html still shows the raw digests of the gap board, the roadmap inputs and 70 readiness receipts (20 of them expected_sha256 pins in tools/north-star/sources.json), and the architecture builder's custody table (architecture_view.py:311) shows cc-now.json's and adoption-now.json's. The PR's Follow-ups list them. Nine new regressions. At 51f85b5 they fail (27 failures and 13 errors, counting subtests) with the exported tree unchanged, and Astra's three probes fail there and pass here. The 35 local-pages, skill-usage and north-star modules pass (789 tests, 8 skipped). A live build takes 42.4 s, against 44.3 s at 51f85b5, and its 43 pages carry no mask or residue placeholder. On 284,875 unique strings from the live inputs, catalogs, manifests and repository Markdown, 2 outputs differ from 51f85b5's (an apostrophe-quoted '@AGENTS.md' now masks, in text no page renders), and none is dropped as residue. Co-Authored-By: Claude Opus 5.5 <[email protected]>
51f85b5 to
3d7b1e7
Compare
…y digest of host state The final commit of #1012 under the CC's ruling on Astra's three P1s at 3d7b1e7 (her VERDICT.md, sha256 e945d18d). - P1 1: the atext walk takes all 81 RFC 5322 atext characters. The slash was left out and leading backticks were always skipped, so a lone slash, "x/" and a lone backtick before an at sign stayed readable on the pages and as token-tools-now.json keys and values, also as %2F, / and %60. CPython Lib/email/_parseaddr.py getatom (:475-493 at cbc944f4) accepts all 81. Three contexts are set aside, each positively identified: inside a URL (a scheme, "://", up to a space, angle bracket or quote; RFC 3986 section 3.1) the slash ends the local part, so a path is no address and an address after a path segment masks from its own first character; an at sign right after a slash, with a name after it that a slash or an opening parenthesis follows, starts a path segment or a call, and the slash must be the character right before the at sign, which no mailbox has, so an address that is itself a path segment (gcloud's legacy_credentials/ plus an account address plus /adc.json, or x/ plus an address plus /y) masks whole, directory prefix included; and a backtick string that a string of equal length closes after the at sign opens a Markdown code span (CommonMark 0.31.2 spec.txt:5865-5872 and :6072-6073 at 9103e341), so `@AGENTS.md` stays and a backtick that nothing closes is part of the local part. A scheme-less host path with nothing after it now masks, like any slash-ended local part. - P1 2 (#161): the new page's footer served the SHA-256 of the native builder's render of the state root, whose raw bytes held a private address (the gate owner), and sources.html served the raw digests of the gate receipt, the gap board, the roadmap inputs and 70 readiness receipts. A digest of private bytes confirms a guessed value offline. The composer now marks an input private by provenance, when its path is under the state root, and the role projection's registry files the same way, so 83 inputs are private where 9 were and the nonserved receipt keeps their digests. The Command center and Sources pages show "private, not published (host state)" for each of them and for the native manifest in the footer; repository inputs keep their SHA-256. Not in this commit: the Home, Readiness, Gap board, Roadmap and Fleet footers still print the manifest digest, and two architecture pages print cc-now.json's, adoption-now.json's and one readiness receipt's. - P1 3: three comments wrote out a complete address at a delegated domain: two in sanitization.py, one of them a host path that the full atext grammar also reads as an address, and a punctuation-only address on the target domain in a test. They are prose now, and a test scans the local-pages and skill-usage sources and their tests for any address that is not a no-reply form or on a name RFC 2606 and RFC 6761 reserve. Thirteen tests: eleven fail at an export of 3d7b1e7 (68 failures, counting subtests) with the export unchanged, and two pin the URL, Markdown and path controls and the cost. Astra's review_probes.py gives FAILED (failures=10) on that export and OK here, review_static.py FAILED (failures=1) and OK. Twelve mutations of the change each fail them. The 36 local-pages, skill-usage and north-star modules pass (812 tests, 8 skipped). A live build takes 37.2 s, against 40.3 s at 3d7b1e7 built just before it from the same state root (load 17 to 25), and its 43 pages carry no mask or residue placeholder. On 1,288,538 unique strings from the tracked tree and the live inputs, 4 outputs differ from 3d7b1e7's (two package URLs mask from their ecosystem segment, an apostrophe-quoted import stays readable again, and the removed comment now masks), none in text a page renders. The three adversarial 50,000-character forms take 0.025, 0.022 and 0.021 s, against 0.025, 0.021 and 0.021 s at 3d7b1e7, back to back at load 16 to 20. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 38302cd2a5
ℹ️ 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".
… token is published unchecked The fix commit of #1012 under the CC's ruling on the GPT fix3 verdict at 38302cd (fix3-pr1012-38302cd2a/VERDICT.md, CHANGES_REQUESTED, two P1s) and the Claude micro at 38302cd (pr1012-claude-micro-38302cd2.md). - BLOCKER 1 (#161): no page carries the native readiness manifest digest. Every composer page and every Architecture page prints "private, not published (host state)" in the footer, the Readiness heading does too, and the run summary names the nonserved receipt that keeps it. Before publication each page passes sanitization.withhold_digests with the SHA-256 of every record the refresh read from the state root, so no page carries such a digest or a prefix of one 7 or more hex characters long, content-addressed names included. - The Architecture pages follow the same provenance rule (the micro's (c) and the verdict's exact fix): the custody table, the host-receipt table, the layer headers and every other cell withhold the digests of state-root records, the architecture receipt keeps them, and a detail page is named by the digest of the bytes it publishes. - BLOCKER 2: a token over 4,096 characters is still masked in place without decoding (the cost bound), and is then decoded with the same two rounds and checked, so none is published unchecked. One that an address touches once decoded, or whose decoded text turns the character beside an in-place mask into part of the address, is omitted whole as "[email omitted]". One whose decoded text, or the text it encodes as hex or base64, holds a home path, a session id, a task handle, an account URL or the home name reads "[long token omitted: it decodes to private text]", and the command-center page counts those as it counts dropped values. The control decodes with CPython's html.unescape and email._parseaddr at cbc944f4 (v3.13.16, byte-identical to the installed files). - The micro's (b), Codex's five threads at 38302cd: a run pin follows the same-layer final-stack winner's run field and shows its run_reason when it has none; a skill the Claude lanes report measured keeps those counts without a host row; a current daily projection makes an absent or stale hourly report it replaces "not used" rather than a gap; a read queue without a parseable updated_utc leaves Orchestration partial; each Adoption token-efficiency row is labelled by its case-folded name, RTK included. - The verdict's follow-up 4: the two line citations of skill_usage.py in comments now read :603, :615 and :652 at 900835c. The micro's (d)1 and (d)2: the docstring, comments and README say RFC 5322 allows a local part ending in a slash, and that the code-span opener's letter-or-digit condition is this mask's own, stricter than CommonMark. Fifteen new or changed tests each fail on an export of 38302cd with the new tests copied in (54 failures and 4 errors, counting subtests) and pass here. The verdict's review_probes.py gives FAILED (failures=13) on that export and OK here. The 36 local-pages, skill-usage and north-star modules pass (825 tests, 8 skipped). A live build from the state root carries none of the 109 state-root digests it records, or a 7-character prefix of one, on any of its 45 outputs, where 38302cd's carries them on 42. Of 1,949,346 unique real strings, all 18 that hold a token over 4,096 characters and a fixed sample of 60,000 others sanitize as they did at 38302cd. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Scope
command-center.htmlto the local pages, a nine-section view of sessions and lanes, orchestration, PR waves, the resolution landscape, SOTA skill invoke rates, tokens saved, the research queue, compounding manifests and owner items. It reads existing producers only, sixteen files through a new exactcommand_centerrole map insource_policy.json, and ships reviewed user units for the skill-usage reports plustoken_tools_now.py, which runs each token tool's own report command. A missing input renders as a stated gap instead of stopping the refresh.900835c60ce9890cd704df4e98ded0b8aa91977d(main after Measure daily native skill use and test the security-audit trigger cue #970, which merged at 03:14:22Z on top of Add a local Claude review worker for essential pull request heads #953, Bound paper sell quote age independently of entry freshness #1015, docs: consolidate research convergence and close practice workstreams #1011, tools(landing): move the CC's landing scripts into the repository, with offline tests #975 and Regenerate the final-stack manifest after #1018 changed one of its sources #1025). The branch was rebased onto it at 03:23:42Z and replayed at 03:32:23Z (reflog). Measure daily native skill use and test the security-audit trigger cue #970 inserted a README paragraph directly above a sentence this PR changes, and both are kept verbatim. Every other change of the rebase is registry-only: themanifests/evidence.jsonentries forsource_policy.jsonandtools/skill-usage/README.md, and Measure daily native skill use and test the security-audit trigger cue #970's new entry fortools/local-pages/README.md, take the measured value of each commit's file, and every commit's entries match its files (git range-diffagainst 51f85b5: commits 1-7!in those entries, and in commit 1 also the README context). Commits: 380dc3f, the page; 71b3338, the full landscape with the first Claude read's B1-B3; 7de947f, the idle-class units; 28ee5e1, the round-2 fixes; bc8ee15, the.targetcorrection; 99777e2, the last wave's commit (Astra's first read of a737ef9, and the final Claude delta's wording); 47f064c, the Claude skill columns relabelled as calls, not sessions (Codex P2 at a737ef9, PRRT_kwDOUg_LrM6rSAfK); 3d7b1e7, the terminal commit under rule 4 (the 51f85b5 micro's B1, B2 and C, and Astra's two P1s at 51f85b5); 38302cd, the final commit under the CC's ruling on Astra's three P1s at 3d7b1e7; 66e8281, the fix commit under the CC's ruling on the GPT fix3 verdict at 38302cd and the Claude micro at 38302cd (below). Before this rebase the first seven were 33c9435, 40a11df, 3256b1d, 3614b78, 0c18ae0, d5bf784 and 51f85b5, on 791eab0.lane:foundationtools/local-pages/{command_center_view.py (new), token_tools_now.py (new), build_pages.py, sanitization.py, source_policy.py, source_policy.json, architecture_builder.py, architecture_view.py, assets/site.css, README.md, design-plan.md},tools/skill-usage/{render_units.py (new), systemd/*.in and claude-lanes.jq (new), README.md},manifests/evidence.json(three rehashed entries:source_policy.json,tools/skill-usage/README.mdandtools/local-pages/README.md),tests/test_local_pages_command_center.py(new),tests/test_local_pages_token_tools.py(new),tests/test_skill_usage_units.py(new),tests/test_local_pages_sanitization.py,tests/test_local_pages.py,tests/test_local_pages_adoption_roles_boundary.py,tests/test_local_pages_architecture_read_boundary.pycc-now.json#/cc_agents/runningcc_agents.runningat this buildcc-now.json#/orchestration,#/landing_queue;read-queue-now.json; theorchestration-frameworksslot ofslots-final.json; Adoption orchestration by rolecc-now.json#/in_review(optional head, round, next_gate, blockers, follow_ups),#/landings_todaycomponent-evidence-matrix.jsonwinners with the W6 final columns,new-host-grand-list.json,final-stack.json,cc-now.json#/mirrors/pins;readiness.jsonlayers;cc-now.json#/program,#/rulings,#/north_star_layersadoption/skills/manifest.json(30 rows);skills/skill-usage-{host,codex-lanes,claude-lanes}-latest.jsonor #970'sskill-invoke-rate-latest.json;slots-final.json; Fleet Prometheus ratestoken-tools-now.json(each tool's own command);token-window-now.jsonclient counters; Adoption token-tool counts;cc-now.json#/token_efficiencyresearch-queue.tsv;research-state.jsonresume orderreadiness.json,evidence.json,final-stack.jsoncc-now.json#/waiting_on_ownerAt a scratch build of 38302cd (2026-10-12T06:57:31Z, tool clock; the same state root, rc 0), the nine sections read the same statuses as in this table: wired for landscape, manifests, orchestration, owner items and research, partial for PR waves, sessions, skills and tokens. At scratch builds of 66e8281 and of 38302cd from the same state root (generated 2026-10-12T13:21:55Z and 11:21:00Z, tool clock; rc 0 each) the nine sections read the same statuses at both trees: Sessions reads wired as well, as the state has drifted since 06:57Z, and PR waves, skills and tokens read partial. The per-row reasons above are from the earliest build.
Round 2, from the CC's adjudication of the Claude micro at 50977b0, adds one commit with six fixes, each with a test that fails at 2dfb3c8:
token_tools_now.pyrefuses a destination whose parent or any ancestor reaches the repository through a symlink (Codex :160).token_tools_now.pysanitizes dict keys as well as values, so its docstring's claim holds; the code was fixed rather than the claim narrowed.%40and@there.[email protected]is no longer read as an address. Since the round-1 mask, 9 such paths on 3 architecture layer pages had rendered as "[email omitted]"; the last part may not be one of the exempt unit types. Now 0 cells are masked and the 9 names read.The final correction, from the CC's adjudication of the Claude micro at bdc0978, is one more commit.
targetis a delegated top-level domain as well as a systemd unit type, so it leaves the exempt list: an address there is masked again in its plain,%40and@forms. The other ten of systemd.unit(5)'s eleven types stay exempt. A class-guard test intersects the exempt list with the installed public suffix list and fails on any overlap, and the README and sanitizer name exactly the exempt types and the forms matched in place in long tokens. Both new tests fail at bdc0978.Astra's first read of a737ef9 asked for changes: one P1 and two P2s, each reproduced through the real composer. They join the last wave's commit:
"reviewer"@example.org, whose quotes may be percent- or entity-encoded, or a run of atext. It reads the whole text with each token decoded, so a local part a quote, space or apostrophe splits is found whole, and it is anchored at the at sign. Corrections at later commits: the anchor alone did not make the cost linear, because the walk back over atext had no bound (the 51f85b5 micro's B1), so the terminal commit bounds it and replaces the first-letter-or-digit rule with any nonempty atext run (Astra's P1 1 at 51f85b5); and that atext set had left out the slash and always skipped leading backticks, so the final commit takes all 81 characters and sets aside only the three contexts listed below (Astra's P1 1 at 3d7b1e7). The pages andtoken-tools-now.jsonshare it.in_reviewrow that is not an object is rejected with a stated gap naming the count; PR waves reads partial, and the strip counts accepted rows only.Codex at a737ef9 (P2) found the Claude skill columns headed as sessions where child-usage.mjs counts Skill calls: it bumps
skill_callsonce per invocation (examples/claude-native/workflows/child-usage.mjs:3101) and sums them per child (:3158). 51f85b5 heads them "Claude calls in main sessions, 7 d" and "Claude calls in subagents, 7 d" in both tables, with the producer label and the README; the pinning header assertion fails at d5bf784.The CC's rule-4 ruling on the 51f85b5 micro allowed one terminal commit, 3d7b1e7, which also folds in Astra's delta read of 51f85b5 (two P1s). Each item has a test that fails at 51f85b5:
%40and@written in atext, and apostrophe-joined%252540tokens) take 0.034, 0.025 and 0.024 s, against 11.9, 10.8 and 5.0 s at 51f85b5, run back to back. A local part over 256 characters keeps its leading part visible."w1 [email protected]"@d2.example.orgis omitted whole.\"reaches the mask only inside a value that itself holds serialized JSON, or in the TSV queue. The mask now reads\"as a quote there, so\"w1 w2\"@d.example.orgmasks as its decoded form does. The fail-closed residue guard follows the mask: a value that still holds an at sign, raw or encoded (%40,%2540,@,@,\u0040), followed by a domain, directly after a word character or after a quote with only whitespace between, is dropped whole and reads[value omitted: an at sign beside a word remained after masking]. The command-center page states the count in its header and names the sections partial; other pages show the placeholder in place. No value is dropped on the live pages.email._parseaddr, cited below) and were published. The mask now takes any nonempty atext run and quoted strings of 0 to 256 characters. Leading backticks were skipped as a Markdown code span instead of the first-letter-or-digit rule, so`@AGENTS.md`stayed; the final commit replaces that with a positively identified code span (below). Her inputs are regressions in plain, percent and entity forms, as keys and values.sources.htmlpublished the SHA-256 of private raw bytes: the seven command-center state inputs,cc-now.jsonandadoption-now.json. A digest of raw bytes would confirm a guessed masked value. The receipt marks those 9 inputs private and keeps their digests and byte counts. The composer's source notes and custody rows showed "private state input; this page withholds its digest, which the nonserved receipt keeps" (since the final commit they read "private, not published (host state)"), and no composer page shows their sizes. Repository inputs keep their SHA-256. The regression checks every page the composer builds, and the receipt outside the served root. Her read of 3d7b1e7 found the same class on the new page's footer and on the other state-root rows ofsources.html, which the final commit withholds (below). The fix commit extends the rule to every composer page and to the architecture pages (below).The final Claude delta at a737ef9 read PASS_WITH_P3. One claim in the correction's own lines was false at head, and the same commit qualifies it: the sanitizer docstring and the README now say an instance name that itself contains a dot still masks (
[email protected]becomes[email omitted].service; Follow-ups, the bdc0978 micro's (a)5), and a test pins that behaviour. The same commit corrects the page's pending label: #1008 merged at 21:34:23Z without final-stack.json, so the label, from one constant, the README and the two pinning assertions read "pending #1007 (#1008 landed 2026-10-11 21:34:23Z)". #1007 has since landed final-stack.json, so the page now reads its terminal states and shows that label only for a checkout without the file.The #1012 Claude read's B1-B3 are folded into this head. B1: the email mask lives in the shared sanitizer and matches each token after its decoding, so
@, an encoded dot (%2Eor.),%2540and a semicolon-less@are omitted on every page; the old page-local regex left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard; a scalarcodex_top_lanes_Mand an integer above 1e308 degrade only their own section.The CC's ruling on Astra's read of 3d7b1e7 (CHANGES_REQUESTED, three P1s; verdict sha256 e945d18d) allowed one more commit, 38302cd. Each item has a test that fails at 3d7b1e7:
x/and a lone backtick before an at sign stayed readable oncommand-center.htmland astoken-tools-now.jsonkeys and values, also as/and`(the percent forms were already masked at 3d7b1e7:%, the hex digits andFare atext). The walk now takes all 81 RFC 5322 atext characters (CPython'sgetatomaccepts each). Exactly three contexts are set aside, each positively identified, and the sanitizer docstring and README list them (<at>stands for the at sign here, so this body writes no address): (1) inside a URL (a scheme,://, and every character up to a space, an angle bracket or a quote) the slash ends the local part, sohttps://medium.com/<at>handle.nameis a path, not an address, while an address after a path segment masks from its own first character; (2) an at sign right after a slash, with a name after it that a slash or an opening parenthesis follows, starts a path segment or a call (run_stream_events/<at>agent.tool/message_history,<at>DBOS.workflow()/<at>DBOS.step()), which keeps the existingrun_events/…/historycontrol, one string of a repository catalog (run_stream_events/…incatalogs/sota-convergence/manifest-20260923.json) and the DBOS pair inevidence/artifacts/sdk-runtime-coverage-20260922/durable-runtimes.json; the slash must be the character right before the at sign (RFC 5322 also allows a local part that ends in a slash, a cost Follow-ups records), so a natural address path segment masks whole with its directory prefix, gcloud's per-accountlegacy_credentials/<account address>/adc.jsonandx/<address>/y(a control and a pinned outcome intest_the_path_segment_exemption_needs_a_slash_right_before_the_at_sign, and two pairs in the composer test); (3) a backtick string that a backtick string of equal length closes after the at sign opens a Markdown code span (CommonMark 0.31.2) when it does not follow a letter or digit, a condition of this mask that CommonMark does not set and that masks more, so`@AGENTS.md`stays and a code span around an address keeps its backticks. Everything else is part of the local part:/<at>d,x/<at>dand a backtick that nothing closes are masked whole, and so is a host path with no scheme and nothing after it (medium.com/<at>handle.name). This corrects the lines above that said the slash is left out and that leading backticks open a code span, and the README and docstring claims atREADME.md:282andsanitization.py:19-21at 3d7b1e7.sources.htmlserved the raw digests of the gate receipt, the gap board, the roadmap inputs and 70 readiness receipts. The per-class policy of the 2026-09-24 community sweep: effort-guard SessionStart notice, working plugin-install commands, dated dispositions #161 Follow-up now holds on the two pages: the composer marks an input private by provenance, when its path is under the state root (in the capture itself, so no name list can miss one), and the role projection's registry files the same way. The Command center and Sources pages print "private, not published (host state)" for each of them and for the native manifest in the footer; the nonserved receipt keeps every digest andprivateflag; repository inputs keep their SHA-256. The regression plants a run-time address in the gate owner, the gap owner, the roadmap index and the research queue, rebuilds the raw native manifest to show that the planted value is in it and that its digest is the receipt's, and checks that every digest on the two pages is that of a repository input and none is of host state. Scope per the ruling at the time: the two pages; the fix commit extends it to every page (below).sanitization.pyand one test comment wrote out a complete address at a delegated domain (one of the two is a host path that the full atext grammar also reads as an address). They are prose now, and a test scans the local-pages and skill-usage sources and tests for any address that is not a no-reply form or on a name RFC 2606 and RFC 6761 reserve, with the sanitizer's own atext grammar and the systemd unit-type and code-span exemptions. The search the CC asked for over51f85b5b..38302cd2, this body and the commit messages finds two more forms and no address: a string literal intools/claude-review-worker/probes.py(from Add a local Claude review worker for essential pull request heads #953, outside this PR) where the escape of a newline precedes an AGENTS import, which the scanner's grammar reads as a one-character local part, and the pushed message of 3d7b1e7, which words an AGENTS import in apostrophes (history is not rewritten, and the squash body words it without the form). Everything else is a no-reply trailer or an example on a reserved name.Astra's three P3s at 3d7b1e7 are in Follow-ups.
The CC's ruling on the GPT fix3 verdict at 38302cd (
fix3-pr1012-38302cd2a/VERDICT.md, CHANGES_REQUESTED, two P1s) and the Claude micro at 38302cd (pr1012-claude-micro-38302cd2.md) allowed one fix commit, 66e8281: every page and output follows the privacy rule, the composer pages included (CC correction #186); any fallback that publishes undecoded text unchecked closes by omitting it fail-closed; the performance controls stay. Each behaviour change has a test that fails at 38302cd; the citation and wording items are text only:sanitization.withhold_digestswith the SHA-256 of every record the refresh read from the state root, so no page carries such a digest or a prefix of one 7 or more hex characters long, content-addressed names included (receipt-[digest prefix withheld].json; the micro's (d)3). The all-outputs regression rejects every 7-character prefix of the native manifest digest and of each private input digest on every output file.[email omitted], as a shorter token is; one whose decoded text, or the text it encodes as hex or base64, holds a home path, a session id, a task handle, an account URL or the home name reads[long token omitted: it decodes to private text], and the command-center page counts those tokens and names their sections partial. The regressions cover the verdict's four entity forms with a pinned-decoder control (CPythonhtml.unescapeandemail._parseaddrat cbc944f4), partly entity-encoded and double-encoded local parts, a double-encoded at sign and dot, and the other private classes, at the sanitizer, the real composer and the token report's keys and values.run, and a winner without one shows itsrun_reason(catalogs/landscape/final-stack.json#/definitions,winners[].run); a skill the Claude lanes report measured keeps those counts when the host report has no row for it; a current daily projection makes an absent or stale hourly report it replaces read "not used" instead of a gap; a read queue without a parseableupdated_utcleaves Orchestration partial; each Adoption token-efficiency row is labelled by its case-folded name, RTK included. Each thread carries a reply that names 66e8281 and its regression, and all five are resolved.skill_usage.pyin comments read:603,:615and:652at 900835c. The micro's (d)1 and (d)2: the docstring, comments and README say that RFC 5322 allows a local part ending in a slash, and that the code-span opener's letter-or-digit condition is this mask's own, stricter than CommonMark.review_probes.pygives FAILED (failures=13) on an export of 38302cd and OK at 66e8281.SOTA sources
33375500bcea98d610eb30ce10ac4e59b89c390d: https://github.com/anthropics/skills/tree/33375500bcea98d610eb30ce10ac4e59b89c390d/skills/frontend-design,SKILL.mdSHA-256d91970639e9f5c37682ac7ab60094d35f1c7c1f38d731bd56396563aee10c1d3(matchesadoption/skills/manifest.json). Used for the plan and critique: a compact count strip that doubles as the in-page index, one emphasized element (the PR register's next-gate column), no card kit; recorded indesign-plan.md, "Command center".references/choosing-a-form.md(SHA-256fbd8d8fb385670569c16cdcfe3d0e05281d0a33f892ef09a54b5c5780dc548e2),references/marks-and-anatomy.md(2d6a992d…),references/anti-patterns.md(8526a6c6…),references/interaction.md(2050b65e…),references/palette.md(96416245…),scripts/validate_palette.js(d6bcfe60…). Method: counts are figures, not charts; token use by lane is the only chart (one series, slot-1 hue, bars beside the numbers in the same table); flags are status pills that always carry their words.validate_palette.js "#2a78d6" --mode light --surface "#ffffff"and"#3987e5" --mode dark --surface "#17283b"print ALL CHECKS PASS (4.42:1 and 4.11:1).python/cpythonatcbc944f4bc59639a444dd971c737788ba2283a91, the installedpython3version) for the B1 decoders the shared sanitizer already calls:Lib/html/__init__.py:118(&(#[0-9]+;?, the semicolon is optional) and:122(unescape),Lib/html/entities.py:567('commat;': '@') and:1736('period;': '.'),Lib/urllib/parse.py:694(unquote).Lib/email/_parseaddr.pygetaddrspec (:365-385), getatom (:475-493), getquote (:463) and getdelimited (:426-461, where a quote right after the opening one ends the empty string at:449), which accept""@dand!!!@d.Lib/email/_parseaddr.pygetatom (:475-493), which Astra's probe ran for all 81 characters; the CommonMark specification 0.31.2 (commonmark/commonmark-spec, tag 0.31.2 =9103e341a973013013bb1a80e13567007c5cef6f,spec.txtblobf1fab281e98b6006a62afcc59ed910ae4bc6741f, 205,025 bytes, fetched through the GitHub contents API at that commit),:5865-5872(a backtick string is a run of backticks neither preceded nor followed by one; a code span begins with one and ends with a string of equal length) and:6072-6073(a string that no string of equal length closes is literal backticks); and RFC 3986 section 3.1 (https://www.rfc-editor.org/rfc/rfc3986#section-3.1), scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ), for the URL scan. The digest class rule has no new upstream: it is the CC's 2026-09-24 community sweep: effort-guard SessionStart notice, working plugin-install commands, dated dispositions #161 ruling, Astra's executed reproduction (review_probes.pyandreview_static.pyin her packetfix2-pr1012-3d7b1e7a9) and the code at 3d7b1e7 (build_pages.py:200,:365,:432,:588,:613); the hashing citation she lists under P3 stays open (Follow-ups).Lib/html/__init__.pyandLib/email/_parseaddr.pyare byte-identical to it),Lib/html/__init__.py:118and:122andLib/urllib/parse.py:694for the two decoding rounds a long token now passes,Lib/email/_parseaddr.pygetaddrspec (:365-385) for the pinned-parser control, andLib/hashlib.py:33(hexdigest(), hexadecimal digits only) and:58(sha256always supported) for the SHA-256 hex digests and prefixes the pages withhold;catalogs/landscape/final-stack.jsonat 900835c,#/definitionstermwinners[].run("The runs[] id whose repository is the winner's ..., or null with run_reason ..."), for the run-pin rule. The review inputs are the GPT fix3 verdict and itsreview_probes.py(packetfix3-pr1012-38302cd2a) and the Claude micro at 38302cd; the digest rule itself remains the CC's 2026-09-24 community sweep: effort-guard SessionStart notice, working plugin-install commands, dated dispositions #161 ruling.--helpon 2026-10-11: RTK 0.51.0rtk gain --format json; Headroom 0.40.0headroom agent-savings --check-perf --hours 24 --format json(exits 1 below the profile target) andheadroom output-savings(its help: counterfactual unless an A/B holdout is set,HEADROOM_OUTPUT_HOLDOUT>0), run withHEADROOM_UPDATE_CHECK=off,HEADROOM_OFFLINE=1andDO_NOT_TRACK=1; context-mode 1.0.169doctorthrough the plugin'scli.bundle.mjs, whose savings are the MCP toolctx_stats(bin/statusline.mjs:236-242prints a fixed headline when no session exists, so it is not used).tools/skill-usage/skill_usage.pyat 900835c for the skill semantics the page shows:codex.enabledis the manifest'scodex_enabledflag while Codex reads are counted for every manifest skill (:603,:652), and Claude reads "not-measured" when/skill-doctordid not run (:615), so the page keeps those counts and leaves install state unknown.tools/skill-usage/daily_skill_usage.py, landed on main at 900835c with the same blob (02ddea79) as the branch pind38ab63b763819eaeacc7d3ccb0cb5d94c73430ethe page was written against:project_reports(:36) returnsskill-invoke-rate-daily/1with host rows, lanes andmeasured(:88-95), written tocoordination/command-center/skills/skill-invoke-rate-latest.json(adoption/templates/systemd/skill-invoke-rate.service:13). The page reads only that output file under its grant and imports no Measure daily native skill use and test the security-audit trigger cue #970 code.fleet_data.py_tracking_hcom(lines 638-675 at 2dfb3c8) for the UNKNOWN roster shape the test builds;tools/skill-usage/render_units.py_external_path(lines 56-61) for the path-and-resolve()checkdestination()reuses; CPython at the v3.13.16 mirror (cbc944f4bc59),Lib/pathlib/_local.py:664-670, wherePath.resolve(strict=False)isos.path.realpathand resolves every existing symlink;sanitization.pyat 2dfb3c8, whosesanitize()maps dict values only (:115-122) and whose_encoded_tokenleaves tokens over 4,096 characters undecoded (:69); b209afe's page-local mask (command_center_view.py:38), which matched%40and@in place; systemd.unit(5) at systemd 259 (DESCRIPTION: service, socket, device, mount, automount, swap, target, path, timer, slice and scope) for the unit types a template-unit name ends in; and, for the final correction, the installed public suffix list (Debian publicsuffix 20260129.1928-1,/usr/share/publicsuffix/public_suffix_list.dat:10339-10341: "target : Target Domain Holdings, LLC", citing https://www.iana.org/domains/root/db/target.html), which the class guard reads.%%), systemd.service(5) (the:ExecStart prefix), systemd.exec(5) (Nice=-20 to 19;IOSchedulingClass=realtime, best-effort or idle), systemd.resource-control(5) (CPUWeight=idlesets the cgroup v2cpu.idleattribute), systemd.timer(5) andsystemd-analyze calendar. The unit tests round-trip every ExecStart through those quoting rules and runsystemd-analyze --user verify.tools/skill-usage/systemd/claude-lanes.jq.tools/starred-maintenance/render_units.pyand itssystemd/*.intemplates on the Converge 373 public stars and schedule weekly review intake #978 branchcodex/ns2604-starred-convergence-20261010at2b5c9abe0d7b0f4cf56d8502f887261a0c8cc851.tools/skill-usage/skill_usage.py,examples/claude-native/workflows/child-usage.mjs --lanes-sweep, the co-ophourly_usage_refresh.shoutputs (token-window-now.json,adoption-now.json), andsource_policy.pyArchitectureReads, whichCommandCenterReadsextends.meterelement: WHATWG HTML Living Standard, https://html.spec.whatwg.org/multipage/form-elements.html#the-meter-elementLANDING_PROHIBITED_NAMESconvention from tools(landing): move the CC's landing scripts into the repository, with offline tests #975 (af9d19011,tests/test_landing_scripts.py).Evidence-class table
missing input: <name>; unknown never reads as zero; stale reports read stale with their age; terminal states are never inferred; hostile types degrade only their section; hostile strings are escaped; eight email forms, home paths and the account name never render; thecommand_centergrants are exact and cannot widensyntheticpython3 -E -s -B -m unittest tests.test_local_pages_command_center: 43 tests OK at 66e8281 (35 at 38302cd, 32 at 3d7b1e7)synthetictests.test_local_pages_sanitization: 37 tests OK at 66e8281 (36 at 38302cd, 29 at 3d7b1e7)token_tools_now.pykeeps each command, exit code, version and estimate; records a missing, timed-out or unstartable tool as a row; sanitizes before writing; refuses a destination inside the repository before running anythingsynthetictests.test_local_pages_token_tools: 11 tests OK at 66e8281 (10 at 38302cd, 9 at 3d7b1e7)syntheticsyntheticreview_probes.pygives FAILED (failures=3) on that export and OK at d5bf784. A guard test, run in a child process with a timeout, fails on a first draft of the quoted-local pattern whose backslash had two parses (one live build spent 90 s there) and passes here; that draft is kept in scratch, not in the repository.targetexemption is gone and guardedsynthetic.targetforms, short and long; the public-suffix class guard) on an export of bdc0978: FAILED (failures=4, the guard reporting['target']), with the export unchanged; at a737ef9 they passsyntheticreview_probes.pygives FAILED (failures=3) on that export and OK at 3d7b1e7synthetictests/test_local_pages.pycopied in, no source changed): 11 FAILED (68 failures, counting subtests) and 2 OK (the URL, Markdown and path controls, and the cost guard); at 38302cd all 13 OK. The code-span test's 8 failing subtests are six unclosed or lone-backtick shapes and two code spans with a slash inside; a plain closed code span around an address was already masked whole at 3d7b1e7 and is not among them. In the path-segment test the masking controls hold at 3d7b1e7 too (the address masks there from its last slash); its 7 failing subtests are the pinned outcome that the directory prefix goes with the address (4) and slash-ended addresses without a continuation that 3d7b1e7 left readable (3). Astra'sreview_probes.py PrivacyProbesfrom her packetfix2-pr1012-3d7b1e7a9: FAILED (failures=10, seven tests) on a clean export of 3d7b1e7, OK at 38302cd; herreview_static.py: FAILED (failures=1), OK. 12 fail-before mutations of the change (slash out of the atext set, no URL context, no code-span rule, every backtick an opener, no path-segment rule, the path-segment rule without the slash-before-the-at-sign condition, a quadratic URL scan, a quadratic backtick index, each of the two footers, the provenance marking, the registry rows) each fail these tests (run against the committed tree at the final speed-test sizes; the quadratic ones take 1.6 s and 5.6 s on half-size forms), with the scratch copy restored and SHA-256-checked after eachlocal_integrationlocal_integrationlocal_integrationpkg:pypi/NAMEand a version after an at sign now mask from the ecosystem segment, a test string with two code-span imports ofnot-loaded.md(tests/test_install_claude_profile.py:2368) stays readable again, and the removed comment now masks). At 3d7b1e7 it was 287,114 strings and 2 outputs different from 51f85b5'slocal_integrationbuild_pages.pyat 38302cd against the live state root: rc 0, 37.2 s, against 40.3 s at 3d7b1e7 built just before it (load 17 to 25; an earlier pair of the same two trees measured 44.4 s against 41.7 s, so no direction is claimed); 43 pages, 0[email omitted]and 0 residue placeholders at both. The receipt marks 83 inputs private (9 at 3d7b1e7) and no state-root input is unmarked;sources.htmlcarries 142 distinct digests, none of host state, and 100 withheld notes (at 3d7b1e7: 219 distinct, 77 of them of host state or the native manifest, counting the role projection's two registry files);command-center.htmlcarries 3, all of committed manifests (4 at 3d7b1e7, one the native manifest's).scripts/validate.py --scan-fileover the 43 pages: 0 matching locations, status passed; a count-only scan with the CC's names list (3 names), the account name, home paths and addresses finds 24 hits at both builds (the 24 hostname occurrences of the Follow-ups) and no other. Outside that ruling and unchanged from main at 38302cd (the Claude micro's (a)1 lists them completely): the five composer footers and the Readiness heading printed the native manifest digest; all 36 architecture pages printed it in their footers; architecture pages also printed the digests of the retained refresh receipt (33 pages), the adoption snapshot and its 16-hex name prefix (34 and 33),automation-projection.json(9) andhost-receipts-index.json(2); the custody page printed a state-root evidence tarball's digest, which the repository pins; and the host-receipts page printed 14 host receipts' digests. The fix commit closes every one (next rows)syntheticreview_probes.py(copied out of its packet,REVIEW_TREEset to each tree): FAILED (failures=13) on that export, OK at 66e8281local_integrationbuild_pages.pyagainst the live state root at 66e8281 (rc 0, 43.7 s, generated 13:21:55Z) and at 38302cd (rc 0, 39.1 s, 11:21:00Z; a build of the fix tree just before that one took 43.1 s, so no direction is claimed), each with a census that collects every SHA-256 its two receipts record for state-root records, the native manifest digest and the index-declared host-receipt digests (109 at each build): at 38302cd, 1,396 occurrences of a whole digest, and 152 pairs of an output file and a digest whose first 7 characters it carries, on 42 of the 45 output files; at 66e8281, 0 and 0 on all 45 (43 HTML pages and two assets), with 659 content-addressed names reading[digest prefix withheld](627 adoption-snapshot names on the architecture pages and 32 readiness-receipt names onsources.html), and no digest in the run summary. On the same two builds the Run pin column has 66 cells: 20 read "not recorded" at 38302cd, and at 66e8281 59 show a pin and 7 a recorded reason (3 unpinned, 3 unresolved, 1 held)local_integrationlocal_integration%400.027 and 0.027 s,ʀ.024 and 0.026 s, apostrophe-joined 0.021 and 0.021 s; the six slash, backtick, URL and path forms 0.006 to 0.057 s and 0.010 to 0.115 s (the path form doubles: the long token is read a second time); a 60,000- and a 66,000-character entity form 0.097 and 0.102 s against 0.074 and 0.084 s; the speed tests' 0.5 s limits holdsynthetictoken_tools_now.pyend to end with the installed tools: RTK rc 0, Headroom agent-savings rc 1 (0.0% below the 90.0% target) and output-savings rc 0 (no data yet), context-mode doctor rc 0 (18 PASS, 1 SKIP)local_integrationlocal_integrationbuild_pages.py(rc 0) and a scratch cross-checklocal_integrationCPUWeight=idle,Nice=19,IOSchedulingClass=idle; the assertion failed on the previous templates), and passsystemd-analyze --user verifysynthetictests.test_skill_usage_units: 5 tests OKcpu memory pids)local_integrationsystemd-run --user --wait --pipe --collect -p CPUWeight=idle -p Nice=19 -p IOSchedulingClass=idle:cpu.idle1, nice 19, ionice idle; a default control read 0, 0,none: prio 0local_integrationclaude -p /skill-doctorreported $0 and 0 turns); Claude lanes 198 s, 1.9 GB peak, 181 MB raw, 26 KB projected; Codex lanes over 7 days killed at 1500 s (exit 124), completion time unmeasuredsynthetictest_skill_usage) at 66e8281, with the CC's names list set (3 names), and #975'stests.test_landing_scripts(107 tests) OK with it; 812 tests at 38302cd, 801 at 3d7b1e7. #970 addstest_skill_usage_daily. The same 8 commits on c735e8b (faec9044, not pushed) passed 789 tests in 35 modules. The terminal commit's message cites that tree's figures (35 modules and 789 tests; a live build of 42.4 s against 44.3 s at 51f85b5; 284,875 corpus strings; 0.025, 0.023 and 0.023 s against 12.1, 10.0 and 4.3 s); the figures in this body are measured at 38302cd unless a row says 3d7b1e7local_integrationscripts/validate.pyrc 0 (11,738 hashed files);scripts/evidence_manifest.py --checkrc 0; gitleaks 8.30.1 on 900835c..66e8281: 10 commits, no leaks;git merge-tree --write-tree origin/mainrc 0 against origin/main 429f042 (after #1030, #1021 and #995;manifests/evidence.jsonis the only shared path), and on an export of that merge treescripts/validate.pyrc 0 (11,786 hashed files) and--checkrc 0, and the 36 modules run 825 tests there: 810 pass, 8 skip and 7 fail for the export's missing Git metadata (sixgitcalls exit 128 intest_local_pages_policy_grantsandtest_local_pages_architecture_landscape_exclusions, andtest_skill_usage's repository-checkout refusal), the same 7 that fail on a Git-less export of 38302cd and pass in the worktree; the count-only privacy scan (privacy_scan.sh, with its positive control) of the added lines, the commit message and this body finds 0 names, home paths or tokens, and only the three systemd template-unit names this body already carried as email-shaped. The fix commit rehashes thetools/local-pages/README.mdentry (93f00411, 51,564 bytes). At 38302cd:scripts/validate.pyrc 0 (11,738 hashed files);scripts/evidence_manifest.py --checkrc 0; gitleaks on 900835c..38302cd: 9 commits, no leaks;git merge-tree --write-tree origin/mainrc 0 (origin/main 83cec12 at 08:03Z) and against 900835c rc 0;scripts/validate.py --scan-fileand the count-only privacy scans of the diff, the delta, the commit message and this body, each with a positive control, find 0 names, account-name, home-path or address hits. The rebase recomputed by measurement themanifests/evidence.jsonentries forsource_policy.json(65ddfa0a, 761,416 bytes) andtools/skill-usage/README.md, and #970's newtools/local-pages/README.mdentry in each commit that changes the README, as the final commit does (02c44e15, 48,926 bytes)Local commands run
Decision record
None: presentation, a reporter that runs existing tools' own commands, and units that schedule existing producers. The section-to-source map, the
command_centerroles, the optionalcc-now.jsonprojections, staleness limits, flags and the not-wired list are intools/local-pages/README.md; unit cost and cadence are intools/skill-usage/README.md.Host evidence
Not applicable: no file under
evidence/hosts/changes.Checklist
version comment (no floating tags). No workflow changes.
permissions: {}and grant each jobonly what it needs (
contents: read, or an explicitly justified addition). No workflow changes.added without a documented owner.
moved or overwritten).
Follow-ups
The squash body at landing carries the micro's s1-s4 edits (the owner-free wording of the landscape entry, in-place notes on the corrected claims, the percent-form correction and the complete 2026-09-24 community sweep: effort-guard SessionStart notice, working plugin-install commands, dated dispositions #161 list) and this commit's message as its last entry.
The residue guard's whitespace form covers a quoted local part only: an unquoted
w @dand a zero-width-space at-sign form pass unchanged (0 live strings on the 43 pages). Follow-up for this lane: extend the guard to those forms, for example with the normalize-then-scan approach Scan the pull request description for home paths and credentials #991 adopts for PR bodies.C's JSON escaping cites no source: CPython Lib/json/encoder.py:21-23 at cbc944f4.
The build pair "43.8 s against 44.6 s" is one run's record; a later reader's pairs had the head 4-9 s slower, so no direction is claimed.
(a)5 from the 50977b0 micro: the last wave's claim that the at-sign anchor made the cost linear was false at d5bf784 and 51f85b5. The walk back over atext had no bound, so one 50,000-character
a%40b.ccrun took 11.9 s at 51f85b5 (the 51f85b5 micro's B1). The terminal commit bounds the walk at 256 characters: 0.034 s.(a)6:
read_command_center_inputscatches(OSError, ValueError, UnicodeError)(build_pages.py:354), so a deeply nested valid JSON input (RecursionError) stops the refresh; add RecursionError to that except. No producer writes such nesting.(a)7: "in use" also counts Codex name mentions (
SKILL_COLUMNS[1:]); 0 of the 29 live skills are in use by mentions alone.(a)8, with the shared identity filter (Codex :103): with HOME=/root, the shared sanitizer's identity filter masks the word "root" in generated labels. The root cause is that filter, which masks a home name such as "root" in every label on every page; it is outside this PR.
(a)9 (Codex :146):
tests/test_skill_usage_units.pyskips verification only on bus errors, not on "Failed to initialize manager" where no user manager exists. Not reproduced here (P3).(a)11, carried from the first read: landings objects are counted but not listed; summary focus, now also
.cc-more summary; print min-width, now also.cc-skill-matrix(64rem) and.cc-layers(72rem).(a)12: a wrong-typed optional sub-input takes down its whole section (Fleet
tracking.lanesin Skills, Adoptionorchestrationin Orchestration). fleet_data emits lists, so no producer reaches it.From the bdc0978 micro:
tracking.statusandtracking.reasonwould carry them. Sessions still reads partial.[email protected]still masks as "[email omitted].service", because the pattern backtracks to the.conflabel. 0 such names render. The README and docstring now say so, and a test pins it.destination(), because non-strict realpath leaves the loop unresolved, so the tools run (about 8 s) beforepublishfails with rc 2. Nothing is written.hcomobject, while build_pages's real adapter-failure tracking carries one ("(UNKNOWN): Fleet adapter unavailable")._names_rtkmatches "rtk" inside any word; a roster reported with rejected rows reads wired without its rejection reason, which fleet.html carries.context-mode 1.0.169
doctorrequests https://registry.npmjs.org/context-mode/latest on every run, so eachtoken_tools_now.pyrun makes one external request; the README's offline sentence covers Headroom only.From the first read: backslash (Windows-style) home paths for other accounts pass the shared sanitizer. Generate the canonical final-stack manifest (W4 PR 2) #1007 has landed, and the page reads its final-stack.json under the grant already in place.
From Astra's first read of a737ef9 (follow-ups, carried items): the context-mode doctor's external version lookup; the tracking-level hcom reason (the bdc0978 micro's (a)4); the RecursionError and unwritable-destination boundaries ((a)6); the rendering and wording items ((a)7, (a)8, landings objects, dotted unit instances, focus and print); hostname hygiene (P3 under the standing ruling); and the citation captures she lists as unverifiable from her archive.
From the 51f85b5 micro and the CC's rule-4 ruling (P3):
"w1".w2@dstill leaves"w1"beside the placeholder, andw1."w2"@dleavesw1.; 0 corpus strings hold either;["a", "@AGENTS.md"]becomes["a[email omitted]"]; privacy-safe, and 0 placeholders render on the live pages;From Astra's delta read of 51f85b5 (P3, her line numbers at 51f85b5):
_skillsreturn annotation (command_center_view.py:689) still declaresint | Nonewhere:808returns the summary dictionary;build_pages.py:349), collection before some destination failures (token_tools_now.py:210), the tracking-level hcom reason (command_center_view.py:154), fewer landing representations listed than the strip accepts (:313), mentions as use (:715) and dotted unit names (sanitization.py:38);manifests/evidence.jsonandtools/local-pages/source_policy.json, and 0 account-name hits (P3 under the hostname ruling);2026-09-24 community sweep: effort-guard SessionStart notice, working plugin-install commands, dated dispositions #161: the digest policy per input class is that repo-pinned integrity digests whose preimages are published stay, and digests of privately rendered state are withheld. The final commit applied it by provenance to
command-center.htmlandsources.html; 66e8281 applies it to every page the refresh publishes, the composer's and the Architecture builder's, and to the build's run summary. The digests stay in the nonserved receipts and in themanifests/evidence.jsonorcatalogs/north-star/readiness.jsonrows that already publish some of them. Not covered: a hex run longer than 64 characters or a digest inside a longer hex run is not read as a digest (0 such runs on the 45 live outputs); and a private digest is withheld only when the refresh records it, so a page that quotes a digest it did not read keeps it. The opposite cost: any run of 7 to 64 hex characters that equals the start of a private digest reads as withheld, also a number (the live outputs hold 1,347 distinct runs, 13 of them 7 characters long, and all 659 withheld prefixes are content-addressed names).Known limits of the final commit's contexts (measured, P3): the path-segment exemption, which the CC accepted on this condition, fires only when the character right before the at sign is a slash and the character right after the domain is a slash or an opening parenthesis. Its cost is that an address whose local part ends in a slash, with that continuation, stays readable (RFC 5322 allows such a local part; none is known in use here); the opposite cost is that an address inside a path masks together with its directory prefix outside a URL (
legacy_credentials/<account address>/adc.jsonreads[email omitted]/adc.json, and${USER_HOME}/.config/gcloud/legacy_credentials/<account address>/adc.jsonreads the same, because the placeholder and the directories are atext in front of the address), while inside a URL the slash ends the local part and the prefix stays; a scheme-less host path with nothing after it masks; two addresses joined by a slash merge into one placeholder; package URLs of the formpkg:pypi/NAMEplus a version after an at sign (2 corpus strings, none rendered) mask from the ecosystem segment. Tokens over 4,096 characters are closed by 66e8281 (the GPT fix3 verdict's BLOCKER 2): each is decoded and checked after the in-place mask, and one whose decoded text still shows an address or another private value is omitted whole, so the long token's own prefix goes with it. A fully percent-encoded URL with an encoded at sign (https%3A%2F%2Fmedium.com%2F%40…) masks from its scheme, at 3d7b1e7 too: the decoded pass leaves it, then the raw pass reads%2Fas atext (0 corpus strings, privacy-safe). A non-ASCII symbol before an at sign (RFC 6531) stays readable, while a letter or digit is dropped by the residue guard, as before. The residue guard is unchanged: the mask now classifies every atext predecessor itself, and the three contexts cannot be told apart by a predecessor-only pattern.From Astra's read of 3d7b1e7 (P3, her line numbers there): (4) source and capture evidence is incomplete (
pr-body.md:53-:65and:74-:88,tools/skill-usage/render_units.py:5,build_pages.py:366): the frontend-design commit mirror, the dataviz files, the RFC captures, the token tools' version and help captures, Converge 373 public stars and schedule weekly review intake #978's historical renderer and the live-page, browser and producer measurements are not retained in her archive, and the digest correction lacks a pinned hashing or publication citation; (5) adjacent recovery and interpretation limits (build_pages.py:349,:629,:664,token_tools_now.py:210,command_center_view.py:154,:313,:715,render_units.py:134): pre-render JSON recursion before the panel guards, destination failures after collection, the tracking-level hcom reason, fewer landing representations than the strip accepts, mentions as use, and per-file rather than whole-directory publication; (6) historical measurement and hostname hygiene: the terminal commit's older figures (pr-body.md:89) and 26 hostname occurrences on 24 lines in unchanged parts ofmanifests/evidence.jsonandtools/local-pages/source_policy.json, with 0 account-name hits.From the GPT fix3 verdict at 38302cd (P3): (3) source and capture gaps (its SOURCE-AUDIT.md): UNMIRRORED CommonMark, RFC and dataviz material, installed-tool help and live-page captures; the pinned hashing citation is now under SOTA sources (
Lib/hashlib.pyat cbc944f4); (5) the adjacent recovery and interpretation boundaries carried above; (6) hostname hygiene (26 occurrences on 24 unchanged lines) and the body and squash-copy capture identities it could not authenticate.From the Claude micro at 38302cd (P3): (d)4, the squash body's final entry gives one build pair without the no-direction note; (d)5, no planted live-state build this round, since the source policy refuses the override route (the composer route is covered by the fixture tests through
refresh()); (d)6, the body's dated status snapshot, now with the 66e8281 build beside it.Research queue (rule 8, from the CC's rule-4 ruling): one maintained, cited email detector for publication scans and page masking, shared with Refuse email addresses in the publication scan #1002. Candidates: the WHATWG HTML "valid email address" grammar, CPython
email._parseaddras a validator, Presidio's EmailRecognizer and the email-validator package. The chosen detector replaces both hand-rolled implementations.The CC installs the two rendered unit pairs after landing (re-rendered against the live clone); until then the hourly reports read stale and the daily Codex-lanes report is absent. The first daily run's duration should be read from the journal, because its three-hour limit is a ceiling, not a measurement.
Measure daily native skill use and test the security-audit trigger cue #970 has landed (900835c). Once the CC deploys its daily timer, the page uses its
skill-invoke-rate-latest.jsonwhile the file is under 30 hours old; the grant is in place.tools/token-report: its manifest is outside the page roots, and its README keeps raw reports private; wiring needs a separately reviewed sanitized receipt.Fold the legacy
cc_status_page.pypanels into this page (CC follow-up).Firefox rendering, including the
::-moz-meter-barstyle, is untested.Outside this PR:
cc-usage-refresh.service, which producestoken-window-now.jsonandadoption-now.json, failed at 18:01:49Z on the CC'snorthstar_page.py:1461(TypeError on dict rows incc_agents.running).🤖 Generated with Claude Code