Repository navigation
Architecture page: stack, layer, host and desk views; unblock its refresh - #984
Merged
seathatflowsinourveins merged 2 commits intoOct 10, 2026
Merged
Conversation
The Architecture page now opens with four source-bound views above the existing layer ledger and custody sections: - the six-layer stack (host, agents, layer verdicts, GitHub gates, the north-star desk, monitoring), drawn as a diagram-design layer stack; - all 32 layer verdicts from the component evidence matrix, grouped by catalog and the trading catalog's recorded group (30 recorded, 2 pending_lanes); - the host deployment: the WSL release target and the new-WSL install plan's 13 services with their loopback ports, by recorded layer; - the trading desk as a six-step data flow from the gate ladder (11 of 20 gates established), the runtime target and the matrix winners. architecture_manifest.py projects only names, identifiers, versions, ports, statuses, counts and dates from six records that source_policy.json already grants exactly; reads are existence-gated, keep the fail-closed policy, and join the custody table, the receipt and the refresh signature. architecture_diagrams.py renders 1200-, 720- and 400-wide SVG variants chosen by a container query, with system fonts and page tokens for light and dark. document() gains an opt-in head argument for the inlined stylesheet. 22 new tests cover projection, rendering, custody, privacy, the matrix count and a mask-width regression. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ecture Since #878 (c8a29c3) added catalogs/landscape/grand-catalog-20261008.json and grand-catalog-index-20261008.json, every Architecture refresh fails closed: both landscape globs (architecture_sources.build and architecture_builder.refresh_if_changed) read each non-canonical landscape JSON under architecture_supplement, and ArchitectureReads.authorize refuses paths the policy does not grant ("Architecture role/path has no independent approval: architecture_supplement", the SourcePolicyError recorded in the local-pages refresh receipt). The live architecture.html stayed at its pre-#878 build. Granting cannot fix the 28389911-byte catalog: the globs read under a 16 MiB bound, and that limit stays. Its rows already reach the page through the retained G5 asset. The 97 KB slot index has no layers, rows, candidates or components collection, so the supplement projection would attach nothing from it, and it gets no grant either. source_policy.json gains architecture_supplement_exclusions: exact top-level landscape JSON paths, each with a reason, refused when they are also granted, protected, duplicated or outside catalogs/landscape. Both globs skip a listed file before any byte access; any other unlisted landscape file still fails closed. Exclusions appear in the receipt and the custody section. Each exclusion's pin and blob sha256 are recorded in architecture_derivation_sources. The new test module fails on the committed catalog set with the same SourcePolicyError and passes with the exclusions. It also checks that an excluded file is never opened, that unlisted files still refuse, and the exclusion validation rules. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
deleted the
cc/architecture-grand-design-20261010
branch
October 10, 2026 20:45
6 tasks done
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 10, 2026
Peer-path correction acknowledged by the CC as #984's owner in correction #147 (2026-10-10T21:40Z). Git 2.53.0's default pathspec '*' can match directory separators; ':(glob)' uses FNM_PATHNAME, so its wildcard cannot cross '/'. Primary source: git/git v2.53.0, Documentation/glossary-content.adoc, the pathspec and glob sections. Reader references at merged main a7c15bd: tools/local-pages/architecture_sources.py:375 and tools/local-pages/architecture_builder.py:241 both use top-level Path.glob('*.json'). The test now uses the equivalent supported Git pathspec, ':(glob)catalogs/landscape/*.json'. Regression evidence: the exact native inventory method from merged main a7c15bd, compiled in memory with its policy and committed catalog inputs, fails one test before on the nested gap-closeouts/schema.json and passes one test after changing only the pathspec literal; zero errors in either probe. The complete requested architecture, closeout and workflow modules then pass 170 tests with one existing skip. Integrate the already-landed #984 baseline through this one forward merge on d965908, because the peer test did not exist in its earlier base. Relative to Git's clean automatic integration, authored changes are only the single inventory line and its files[] registration.
6 of 8 tasks
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 11, 2026
Peer-path correction acknowledged by the CC as #984's owner in correction #147 (2026-10-10T21:40Z). This commit carries, as its own linear commit on main eb31d23, the fold that a08b616 authored inside its forward merge of d965908 and a7c15bd: the single inventory line and its files[] registration, re-registered through host_receipts.register_file and evidence_manifest.py --write. Git 2.53.0's default pathspec '*' can match directory separators; ':(glob)' uses FNM_PATHNAME, so its wildcard cannot cross '/'. Primary source: git/git v2.53.0, Documentation/glossary-content.adoc, the pathspec and glob sections, re-read from the installed Git 2.53.0 gitglossary(7). Reader references, unchanged from a7c15bd to main eb31d23: tools/local-pages/architecture_sources.py:375 and tools/local-pages/architecture_builder.py:241 both use top-level Path.glob('*.json'). The test now uses the equivalent supported Git pathspec, ':(glob)catalogs/landscape/*.json'. Regression evidence carried from a08b616, measured at main a7c15bd: the exact native inventory method from merged main, compiled in memory with its policy and committed catalog inputs, fails one test before on the nested gap-closeouts/schema.json and passes one test after changing only the pathspec literal; zero errors in either probe. Re-measured on this linear branch at parent e1c6df7 (2026-10-11T00:08Z): git ls-files lists 22 paths for 'catalogs/landscape/*.json', including catalogs/landscape/gap-closeouts/schema.json, and 21 top-level paths for ':(glob)catalogs/landscape/*.json'. tests.test_local_pages_architecture_landscape_exclusions ran 7 tests with 1 failure on that nested schema.json before this change, and 7 tests OK after it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 11, 2026
Peer-path correction acknowledged by the CC as #984's owner in correction #147 (2026-10-10T21:40Z). This commit carries, as its own linear commit on main eb31d23, the fold that a08b616 authored inside its forward merge of d965908 and a7c15bd: the single inventory line and its files[] registration, re-registered through host_receipts.register_file and evidence_manifest.py --write. Git 2.53.0's default pathspec '*' can match directory separators; ':(glob)' uses FNM_PATHNAME, so its wildcard cannot cross '/'. Primary source: git/git v2.53.0, Documentation/glossary-content.adoc, the pathspec and glob sections, re-read from the installed Git 2.53.0 gitglossary(7). Reader references, unchanged from a7c15bd to main eb31d23: tools/local-pages/architecture_sources.py:375 and tools/local-pages/architecture_builder.py:241 both use top-level Path.glob('*.json'). The test now uses the equivalent supported Git pathspec, ':(glob)catalogs/landscape/*.json'. Regression evidence carried from a08b616, measured at main a7c15bd: the exact native inventory method from merged main, compiled in memory with its policy and committed catalog inputs, fails one test before on the nested gap-closeouts/schema.json and passes one test after changing only the pathspec literal; zero errors in either probe. Re-measured on this linear branch at parent e1c6df7 (2026-10-11T00:08Z): git ls-files lists 22 paths for 'catalogs/landscape/*.json', including catalogs/landscape/gap-closeouts/schema.json, and 21 top-level paths for ':(glob)catalogs/landscape/*.json'. tests.test_local_pages_architecture_landscape_exclusions ran 7 tests with 1 failure on that nested schema.json before this change, and 7 tests OK after it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 11, 2026
* Add the shared evidence-bound gap closeout loader Validate dated layer closeouts through the pinned jsonschema 4.26.0 Draft 2020-12 API. Bind original crosswalk identity, registered evidence, supported vendor sources and two passing GPT/Claude reports at the same head. Preserve proposed/residual/blocked gaps and all current-main counts. Retain the required failing-before controls, receipt/files compatibility correction and final native fixture evidence. Make the existing validator pin available through hash-pinned CI requirements. Sources: python-jsonschema/jsonschema v4.26.0 at a7277432b0f7bcd0551f6e589d30457017125df4, validators.py:307,348,812; native-agent-stack main 9d4c00c, catalog_decisions.py:57,85 and host_receipts.py:710. Validation: 84 touched-module/inventory tests, zero skips; unchanged native matrix check and final registered-tree FULL validation passed. * Refresh the bounded advisory inventory for closeout reads Account for the shared loader's eight additional input-read locations and one measured dynamic shape in the existing repository workflow test. Retain the historical inventory and every other script, shape, coverage and enforcement expectation; no loader, schema or worker-policy change. Source: native-agent-stack main 9d4c00c, blueprints/runtime-workers/openhands/resolver/gate_reads.py:913-930. Validation: the original assertion fails before correction; the touched module passes 125 tests with one existing optional PyYAML skip using the hash-pinned CI environment. Final registered-tree FULL validation passes. * Normalize the retained advisory log endings Remove the final empty line in each native advisory test log to satisfy the repository whitespace contract. Refresh the explicit file bindings and retain the prior hashes. Test assertions and results are preserved. Validation: final registered-tree FULL validate passed after normalization; the cached whitespace gate must pass before this forward commit. * Correct the shared closeout registry and review-credit contract Use files[] as the hash authority and model real metadata-only receipt rows in the fixtures. Keep unreviewed residual/blocked records proposed without changing counts or prior credit. Pin each missing closeout guard. Use the existing missing-library SkipTest convention and install the hash-locked schema validator before freshness discovery. Document the Python 3.10 dependency floor and correct the upstream/native citations. Regenerate the worker advisory snapshot through the native derivation and remove hard-coded increments. Retain the prior snapshot and fail-before measurements. Source: main 03a986e, validate.py:665-666 and the native worker GateReads derivation; jsonschema 4.26.0/a7277432b0f7bcd0551f6e589d30457017125df4. Validation: required/schema-enabled modules 552 tests, 2 existing skips; freshness-related modules 261 tests with the stale-registration case rechecked after supported refresh; final FULL validation passed. * Preserve the pinned freshness calendar install step * Match architecture inventory to top-level native readers Peer-path correction acknowledged by the CC as #984's owner in correction #147 (2026-10-10T21:40Z). This commit carries, as its own linear commit on main eb31d23, the fold that a08b616 authored inside its forward merge of d965908 and a7c15bd: the single inventory line and its files[] registration, re-registered through host_receipts.register_file and evidence_manifest.py --write. Git 2.53.0's default pathspec '*' can match directory separators; ':(glob)' uses FNM_PATHNAME, so its wildcard cannot cross '/'. Primary source: git/git v2.53.0, Documentation/glossary-content.adoc, the pathspec and glob sections, re-read from the installed Git 2.53.0 gitglossary(7). Reader references, unchanged from a7c15bd to main eb31d23: tools/local-pages/architecture_sources.py:375 and tools/local-pages/architecture_builder.py:241 both use top-level Path.glob('*.json'). The test now uses the equivalent supported Git pathspec, ':(glob)catalogs/landscape/*.json'. Regression evidence carried from a08b616, measured at main a7c15bd: the exact native inventory method from merged main, compiled in memory with its policy and committed catalog inputs, fails one test before on the nested gap-closeouts/schema.json and passes one test after changing only the pathspec literal; zero errors in either probe. Re-measured on this linear branch at parent e1c6df7 (2026-10-11T00:08Z): git ls-files lists 22 paths for 'catalogs/landscape/*.json', including catalogs/landscape/gap-closeouts/schema.json, and 21 top-level paths for ':(glob)catalogs/landscape/*.json'. tests.test_local_pages_architecture_landscape_exclusions ran 7 tests with 1 failure on that nested schema.json before this change, and 7 tests OK after it. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Refuse conflicting receipt mirrors and unsupported validators Fix the two P2s from the FIRST GPT read of ad2e1b1. files[] alone supplies evidence bindings; optional receipt sha256/bytes mirrors must agree with those bindings. Metadata-only rows remain valid. Nonempty closeouts require installed jsonschema exactly 4.26.0 before schema or document loading, with an actionable hash-pinned installation command. The no-record path does not inspect package metadata. Use CPython v3.13.16 Lib/importlib/metadata/__init__.py:980 (version) and :49 (PackageNotFoundError), and python-jsonschema/jsonschema a7277432b0f7bcd0551f6e589d30457017125df4 jsonschema/__init__.py:27. Both fetched primary source files match the installed bytes; retain source hashes and the supported metadata API citation in the correction receipt and decision record. No replacement validator is introduced. The seven focused controls fail against the unchanged reviewed loader: six assertion failures, zero errors, while equal mirrors, descriptive receipts and the no-record behavior pass. All seven pass after the fix. Actual Python 3.14.4/jsonschema 4.19.2 accepts the fixture before the fix and refuses it afterward without returning a document. Actual missing- package refusal and no-record compatibility controls also pass. Keep the receipt key named receipt_path, distinct from the existing filesystem iterator named path. The unchanged native worker assertion caught four advisory locations on the unpublished preparation candidate; the native alias control restores 330/98 with identical per-script counts and shape multiplicities. Preserve that failure and the candidate-only control; the final committed head is checked before the first push. Required modules: 174 tests OK, zero skips (26 closeouts, 64 matrix, 84 validator). FULL validate: 70 components, 11466 hashed files, 4 profiles, 239 receipts, exit 0. Matrix --check: 32 rows, exit 0. The worker snapshot remains SHA-256 8752740817bb41c1a582e33fa475e4ce4064f2ccfecadb706bce40ecb4512157, 330 locations and 98 shapes; frozen crosswalk and generated reports remain unchanged. Preserve historical traces and refresh their source locator and file registrations through the native registry function. One forward commit on ad2e1b1. The GPT micro and the CC's disposition of its prior Claude PASS remain required at this new loader head. --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
This was referenced Oct 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Architecture page now opens with four views drawn from repository and command-center records, above the existing layer ledger and custody sections:
Each view comes in three widths chosen by a container query, supports light and dark, loads nothing external, and does not scroll sideways at 390px.
The Architecture refresh has failed closed since G5: define start-closure/1 and pass full-asset closure check #878 (c8a29c3). That PR added
catalogs/landscape/grand-catalog-20261008.json(28389911 bytes) andgrand-catalog-index-20261008.json, and the policy neither granted nor excluded them. Both are now exact, reasonedarchitecture_supplement_exclusions:Both landscape globs skip them before reading any bytes. Any other unlisted landscape file still fails closed. Each exclusion's pin and blob sha256 are recorded in
architecture_derivation_sources.SOTA sources
diagram-design 2.6.73: https://github.com/cathrynlavery/diagram-design at
246d6d71d752245403d2bf28d27f124192584d18(release commit "bump plugin manifests to 2.6.73"), matching the installed plugin. Files followed:skills/diagram-design/SKILL.md§6, §7, §9 and §12;references/type-layers.md,type-deployment.md,type-data-flow.md;references/primitives-core.md,output-spec.md,style-guide.md(system font source).Checks (re-run by the CC 2026-10-10T20:27Z on the preview built from this branch):
scripts/verify-geometry.pyon the 12 extracted SVG variants: 12 files, 0 findings, rc 0.skills/diagram-design/scripts/self_check.py --offlinetargets a standalone diagram-design document (one data-motion-root and its canonical controls script); on this page, which embeds 12 diagrams in a frontend-design shell, it reports exactly those two structural items and is not an applicable acceptance check. The earlier claim that it passed on a "manifest extract" referred to an unretained extract and is withdrawn. Upstream commits and blob ids of every cited file are recorded with the transcripts.frontend-design (page shell): https://github.com/anthropics/skills at
dbd4588f9e1033efb41dad4bef2f7947c8993d44,skills/frontend-design/SKILL.md.Policy enforcement, at this head:
tools/local-pages/source_policy.py:309-322:ArchitectureReads.authorizeraises "Architecture role/path has no independent approval" for an ungranted path. This is the live refusal.tools/local-pages/source_policy.py:341-355:readraisesSourceReadLimitErrorabove its bound.tools/local-pages/architecture_sources.py:27:_DOC_LIMIT = 16 MiB, so granting the 28 MB catalog would still refuse. It is excluded instead.tools/local-pages/architecture_sources.py:375-386andtools/local-pages/architecture_builder.py:241-266: the two landscape globs that read every non-canonical landscape JSON underarchitecture_supplement. They now skip listed exclusions at :383 and :245.tools/local-pages/source_policy.py:281-307: exclusion validation. Each entry must be one exact top-level landscape JSON path with a reason, and is refused if it is also granted, protected or listed twice.architecture_derivation_sourcesrecords (landscape grants enumerated bygit ls-treeat85a067ba6b960f490f7277b451e8a8f9a74b52a4). The new records pin9d4c00cd05d79b3fd5074df2e46bacab87ee67ff, with blob sha256afb38c94…(28389911 bytes) and9d9cf1c5…(97426 bytes).Records the views read, all already exactly granted, with no new grant:
catalogs/landscape/component-evidence-matrix.jsonevidence/artifacts/new-wsl-install-plan-20261002/install-plan.jsondocs/new-wsl-handbook.json.github/main-ruleset.jsoncatalogs/us-equities/gates-20260922.jsoncatalogs/us-equities/runtime-target.jsonTests
tests/test_local_pages_architecture_manifest.py(22 tests) covers:tests/test_local_pages_architecture_landscape_exclusions.py(7 tests): rc 1 onorigin/main9d4c00c with the live SourcePolicyError, rc 0 here. It also checks that an excluded file is never opened, that an unlisted file still refuses, the validation rules, and that the refresh signature skips exclusions.tests.test_local_pagesandtests.test_architecture_pin_source: 471 tests, rc 0.scripts/validate.pyrc 0;scripts/evidence_manifest.py --checkrc 0.Notes for reviewers
group.manifests/evidence.jsonre-registers onlytools/local-pages/source_policy.json, following the hot-file protocol indocs/lanes.md.🤖 Generated with Claude Code