Repository navigation
test: keep behavior gates independent of host Git policy and the public network - #170
Merged
Merged
Conversation
Bind the released v0.4.1 source to its PR, push and tag CI, its GitHub assets and the operator's managed Homebrew upgrade, rollback and re-upgrade, with the measured link gaps, same-Token checks, evidence custody and the limits that remain open under task 4.5. Generated with Claude Code
Check task 4.5.2 against the reviewer's Attestations for each installed 0.3.5 and 0.4.1 stage, split Claude Desktop into its own open task 4.5.3, and record the reviewer lifecycle holds and their custody. Generated with Claude Code
ETHOS's repository paradigm admits only catalogued root entries, and an aigw-cli runtime rebind needs that before GitLab can receive the maintenance tags. Record GitLab's branch and tag catch-up, the upstream tool supply choice and the runtime dependency of the maintenance tags. Generated with Claude Code
Separate distinct semantic paragraphs with one blank line, as docs/governance/text-layout.md requires. Line breaks and blank lines change; the wording does not. Generated with Claude Code
Fixture repositories inherited the host's init.templateDir. When a Homebrew upgrade broke that template's pre-commit hook, 60 release fixture tests failed under ETHOS's tool-only PATH and blocked three proofs. Every test package that creates repositories now selects an empty template in TestMain, and a regression builds the signed release fixture under a hostile host template. The Forge peer fixture creates the hook directory it names instead of relying on Git's default template. TestNativeDependencyEvidenceRetainsFindings queried api.osv.dev and api.deps.dev from the offline-declared behavior gates and failed whenever the host's route stalled. It now runs behind the dependency_acceptance tag as the network-declared dependency-acceptance quality gate. Change: behavior-gate-hermeticity, tasks 1.1, 1.2 and 2.1. Generated with Claude Code
A global core.hooksPath runs during the ref update of git init and on every fixture command that does not name its own hook directory. Under a host hook directory whose reference-transaction hook rejects updates, 80 tests in five packages failed through that hook alone. tools/gitfixture gives each test process an owned global configuration. It includes the host's top-level global files, as Git itself lists them, and then names an empty hook directory; GIT_TEMPLATE_DIR names an empty template. Fixture-local configuration keeps its precedence, so Forge peers keep their own hooks, and without a Git executable tests still run under the owned policy. Every package that creates repositories now runs through gitfixture.Run, replacing the per-package empty-template setting, and the architecture policy declares the new package with no product imports. Change: behavior-gate-hermeticity, tasks 1.3 and 1.4. Generated with Claude Code
GitHub run 38612255679 passed every Windows test, including tools/gitfixture, but Windows aggregate coverage fell to 94.97% (15319/16131), below the 95% floor that it had cleared by about one statement. Moving the live OSV test removed the only caller of ScanDependencies from the offline suite, and gitfixture added untested error paths. An offline test now covers ScanDependencies refusing a missing policy and an unusable evidence directory before the scanner starts. gitfixture reports both environment updates through one errors.Join and uses one empty directory as hook directory and template, and a test proves that a failed cleanup fails the run. Change: behavior-gate-hermeticity, for task 4.1. Generated with Claude Code
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.
Accepted local work since
03e210c5, landed through ETHOS in three lanes.63804f5f,f6a506c2,3358f611; Changebehavior-gate-hermeticity):tools/gitfixture, which gives each test process an owned global Git configuration: it includes the host's top-level global files, as Git lists them, and then names an empty hook directory and template. Fixture-local hook directories, such as Forge peers', keep their precedence.PATH, and a hostile global hook directory failed 80 tests in five packages. Both now pass, and a regression builds the signed release fixture under a hostile host template.TestNativeDependencyEvidenceRetainsFindingscontactsapi.osv.devandapi.deps.dev, so it moves behind thedependency_acceptancetag into the network-declareddependency-acceptancequality gate. The offline behavior gates no longer depend on the public network; controlled-runner tests keep covering the same evidence handling.tools/gitfixture, but Windows aggregate coverage fell to 94.97%.3358f611adds offline tests forScanDependencies' refusals before the scanner starts and forgitfixture's failed-cleanup report.aae86ecf): removes the root.cbmignore, which the repository-paradigm root catalog rejects, and records the GitLab catch-up state in its Change.74a8835e,a3bb214e,d0d88761, merge8c0109ff): records the 0.4.1 release and installed cutover, closes task 4.5.2 with the reviewer's Attestations, adds task 4.5.3 for Claude Desktop sessions, and splits long multi-topic paragraphs without changing their wording.Local evidence:
mise run checkand a full ETHOS proof passed for each lane head (Attestationse9cdf510…,3fbf360b…,b666871f…and, for3358f611,41ca6b53…). The default suite also passes with public HTTP(S) refused and under a hostile host Git template and hook directory.Generated with Claude Code