chore(submodule): convert absolute-zero/ to git submodule pinned to upstream (closes #84)#89
Merged
Merged
Conversation
…pstream (closes #84) Resolves maa-framework#84 with disposition (B) + submodule per the second status-update comment (2026-05-27 15:01Z). ## What this does - `git rm -r absolute-zero/` (232 files / 36,046 LOC of vendored content) - `git submodule add https://github.com/hyperpolymath/absolute-zero.git absolute-zero` pinned at `7da92b3` (upstream main HEAD as of 2026-05-30 21:53Z BST). - New `.gitmodules` records the submodule. - `docs/proof-debt.md`: §(e) renamed VENDORED → SUBMODULE with refreshed wording; resolved owner question 1 (vendoring policy); the close-out path becomes "fix upstream + `git submodule update --remote`" rather than "fix upstream + re-vendor". - `.hypatia-ignore`: header comment refreshed to note the submodule status; the entries themselves stay (defensive — hypatia may or may not scan through submodule boundaries). ## Why now Per the issue's own second comment, PR #83's re-vendor removed all maa-only "fork signal" files and absolute-zero#65 upstreamed the EchoBridge*.agda bridges, leaving the tree as 174 byte-identical paths + 0 maa-only files + light upstream-newer drift on 7 files. The hybrid (C) disposition the original issue body proposed is no longer needed; this is a clean submodule conversion. ## Behaviour impact - `check-trusted-base.sh` uses `find .` which walks submodule contents naturally, so the 149/150 marker count is preserved post-conversion. No script changes needed. - No Justfile / workflow / build references to `absolute-zero/` paths exist outside the submodule, so no build-path updates needed. - Existing prose refs to `absolute-zero/src/...`, `.../tests/...`, etc. (in `EXPLAINME.adoc`, `TEST-NEEDS.md`, `aletheia/conformance/ECHIDNA-CONFORMANCE.md`) continue to resolve through the submodule directory. Closes #84. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath
enabled auto-merge (squash)
May 30, 2026 22:41
🔍 Hypatia Security ScanFindings: 57 issues detected
View findings[
{
"reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "codeql.yml lists `language: javascript-typescript` but the repo has no source files in any CodeQL-scannable language. The analyze job will exit 'no source files' on every run. Switch the matrix to `actions` (which scans workflow files — every repo has those).",
"type": "codeql_language_matrix_mismatch",
"file": "codeql.yml",
"action": "switch_codeql_matrix_to_actions",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in casket-pages.yml",
"type": "missing_timeout_minutes",
"file": "casket-pages.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
hyperpolymath
added a commit
that referenced
this pull request
Jul 3, 2026
…odule (#117) ## What & why The `absolute-zero/` gitlink (`160000 commit ad085ba`) was recorded in the index, but `.gitmodules` was never committed — leaving a **dangling submodule pointer**. As a result `git submodule` could not resolve it, and the Mustfile `submodule-recorded` check (`severity = "critical"`) always failed. Eight machine-readable contractiles (Mustfile, Bustfile, Dustfile, Intentfile, Trustfile, gitbot-fleet, hypatia) document `absolute-zero/` as a **pinned git submodule (PR #89)**. Only the README contradicted them ("referenced, not vendored as a submodule"). This PR resolves the contradiction in favour of the documented majority intent. ## Changes - Add `.gitmodules` pinning `absolute-zero` to `https://github.com/hyperpolymath/absolute-zero.git`. - Reconcile the README status paragraph to describe it as a pinned submodule (matching ROADMAP, the contractiles, and PR #89). ## Verification - `git config -f .gitmodules submodule.absolute-zero.url` now succeeds → the critical `submodule-recorded` check passes. - `git submodule status` resolves the pinned pointer. ## Context This is task **A1** of a broader estate assessment (the coordination fix that unblocks a fresh clone reaching the CNO foundation). Part of a documentation/coordination honesty pass across the estate. Draft pending human review. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_015qwVESTcbfanY2iJPQNoSz --- _Generated by [Claude Code](https://claude.ai/code/session_015qwVESTcbfanY2iJPQNoSz)_ Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath
added a commit
that referenced
this pull request
Jul 21, 2026
…123) ## Summary A sitrep on this repo turned up something bigger than the CI gap it started as: **`aletheia` has not compiled since 2026-06-17.** This branch fixes that, then adds the gate that would have caught it, and clears two unrelated reds. | # | Finding | State | |---|---|---| | 1 | `aletheia` fails to build — unclosed delimiter in `src/config.rs` | **fixed & verified** | | 2 | `aletheia` has no CI anywhere; its 16 workflows are inert | **root gate added** | | 3 | Governance red — `pages.yml` missing SPDX header | **fixed** | | 4 | `absolute-zero` pinned to a nonexistent commit; Dependabot dead | **re-pinned — needs your confirmation** | ## 1. The compile break `Config::load_config` opened three blocks on one collapsed line and closed two. Introduced by `b5322c2` *"security: remediate Track C and Track E findings"* — which correctly added a 1 MiB read cap against memory exhaustion, then dropped a brace collapsing the block. **`main` has been unbuildable for over a month.** The security intent is preserved exactly; the cap is retained and now commented. ## 2. Why nothing noticed `aletheia/` is vendored as **plain tracked files (mode 100644), not a submodule**. Actions only reads `.github/workflows/` at the *repository root*, so all 16 files under `aletheia/.github/workflows/` — `rust-ci`, `codeql`, `cflite_*`, SLSA3, GHCR — have **never executed**. There is no standalone `hyperpolymath/aletheia` running them either; it was removed from GitHub in early 2026. No root workflow mentioned cargo, and root `codeql.yml`'s language matrix excludes Rust. ~962 lines were completely ungated. Adds root `.github/workflows/rust-ci.yml`: debug + release build, 26 unit tests, `cargo fmt --check`, and a zero-dependency check enforcing the RSR Bronze constraint from `aletheia/CLAUDE.md`. It uses the runner's preinstalled Rust — **no new third-party action**, no added supply-chain surface. Also adds `aletheia/.github/workflows/README.md` so nobody edits an inert workflow again. ### What I deliberately did *not* gate Two things are genuinely red, and a hollow green job is worse than no job. Neither is masked with `continue-on-error`; both are documented in the workflow header: - **Integration tests: 27 of 29 fail.** They exercise a CLI surface — `--help`, `--version`, `--format=`, `--badge`, `--html`, `--init-hook` — that `src/main.rs` does not implement. It parses only `--json` and `--sarif`. - **`clippy -D warnings`: 25 findings**, mostly dead code. These share one root cause: the crate was split into 5 modules (962 lines) but `main.rs` is only 117 lines and never wires most of them up. `glob_match`, `check_path_security`, `parse_toml`, `TomlValue`, `PathCheckResult` are all unreachable. **aletheia is mid-refactor and incomplete** — its 823-line test suite is closer to a specification of the intended tool than a description of the current one. That is a product decision, not a CI fix, so I have left it to you. ## 4. Submodule re-pin — please confirm `ad085baa` **does not exist** upstream (API 422), nor on the GitLab or Codeberg mirrors; orphaned by a force-push during the Ddraig rollout. Dependabot has failed since 2026-07-20 with `upload-pack: not our ref`. Re-pinned to current upstream main `87902bb7`. **This is a semantic bump, not a restore** — the old pin's content is unrecoverable, so I cannot verify `87902bb7` is the intended CNO state. It may also not be durable: this repo has already oscillated three times (#89 → `bef4c92` → #117). Worth settling submodule-vs-vendor, or barring force-push on `absolute-zero`. ## Verification All run locally from a clean target dir before pushing: ``` build: PASS release: PASS tests: 26 passed; 0 failed fmt: PASS zero-dep: PASS git submodule update --init absolute-zero -> checks out 87902bb7 cleanly ``` ## Notes - `PROOF-NEEDS.md` is **stale**: it claims one `Admitted` in `y_not_cno`. There are zero — it is a documented *KEPT AXIOM*. A declared trust assumption, not an unproven hole. Worth correcting separately. - `rustfmt.toml` sets 18 nightly-only options that stable rustfmt silently ignores. - `aletheia/Cargo.toml` still points `repository` at the deleted GitHub repo. - Untouched: the uncommitted SonarCloud edits in the working copy (unpinned `@master`), and the 4 unpushed local commits. Both are yours to decide. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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
absolute-zero/vendored copy (232 files / ~36k LOC) with a git submodule pinned at upstreamhyperpolymath/absolute-zero@7da92b3..hypatia-ignoreheader comment to reflect submodule status (entries stay as a defensive measure).Why
Per the issue body, two siblings of
hyperpolymath/absolute-zeroexist in this repo's history: one in-tree, one canonical upstream. The issue's own second status-update comment (2026-05-27 15:01Z) confirmed PR #83's re-vendor + absolute-zero#65 upstreaming left the trees as 174 byte-identical paths + 0 maa-only files + 7 files lightly upstream-newer. Disposition (B) submodule conversion is the cleanest landing.Behaviour impact
check-trusted-base.shusesfind .which walks submodule contents naturally (verified inhyperpolymath/standards/scripts/check-trusted-base.sh:54—PRUNE_PATHSdoes not list submodules). The 149/150 marker count is preserved.absolute-zero/paths exist outside the submodule itself (verified viagrep -rln "absolute-zero/" --include="*.yml" --include="Justfile" .— only hits are inside the submodule directory).absolute-zero/src/...,.../tests/..., etc. (inEXPLAINME.adoc,TEST-NEEDS.md,aletheia/conformance/ECHIDNA-CONFORMANCE.md) continue to resolve through the checked-out submodule directory.Test plan
git submodule update --init absolute-zerosucceeds on a fresh clonebash scripts/check-trusted-base.sh .(fromhyperpolymath/standards) still reports the same marker count after submodule conversiongit submodule update --remote absolute-zeroadvances pin cleanlyCloses #84.
🤖 Generated with Claude Code