Repository navigation
Close all open issues: aletheia rebuild (#124/#125), rust-ci restore, just shim (#102), changelog (#100), hypatia prune (#98) #185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
9323897
feat(aletheia): rebuild CLI surface on the RSR v2 SSOT
hyperpolymath d8a0483
feat(aletheia): teach pin check the estate lockfile mechanism
hyperpolymath 40b57fa
fix(just): canonical root Justfile + forwarding shim, repair crg recipes
hyperpolymath 5aa5041
fix(ci): restore the root rust-ci gate, re-pointed at aletheia/
hyperpolymath 12d123c
feat(ci): adopt the canonical changelog workflow (commit-back)
hyperpolymath a7c768a
chore(hypatia): prune dead ignore entries, keep an audit record
hyperpolymath 9ff1e99
docs: sync every doc that described the pre-campaign state
hyperpolymath File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # SPDX-License-Identifier: MPL-2.0 | ||
| # CHANGELOG automation (issue #100): regenerates CHANGELOG.md from | ||
| # conventional commits on every push to main and commits it straight back | ||
| # (commit-back). Main has no branch protection (verified 2026-09-21), so no | ||
| # PR round-trip is needed; if protection is ever enabled, switch `mode` to | ||
| # `pr-back`. Uses the canonical cliff.toml from standards (no local | ||
| # cliff.toml by design — one config for the estate). CHANGELOG.adoc is | ||
| # retained as a frozen pointer to the generated CHANGELOG.md. | ||
| name: changelog | ||
| on: | ||
| push: | ||
| branches: [main] | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| permissions: | ||
| contents: read | ||
| jobs: | ||
| changelog: | ||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
| # Pinned to standards@main as of 2026-09-21 (commits/changelog: #886). | ||
| uses: hyperpolymath/standards/.github/workflows/changelog-reusable.yml@b77c53c85e5734756a793497845735485c9dc933 | ||
| with: | ||
| mode: commit-back | ||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,89 @@ | ||
| # SPDX-License-Identifier: MPL-2.0 | ||
| # Root Rust CI gate for the aletheia crate. | ||
| # | ||
| # Restored 2026-09-21: the previous gate was deleted in the commit that | ||
| # moved the crate to aletheia/ and never re-pointed, so main has had no | ||
| # Rust CI since. This version re-points every step at aletheia/ and adds | ||
| # the clippy -D warnings job (the blocking gate half of issue #125). | ||
| # | ||
| # Action refs are tags resolved by .github/workflows/actions.lock (the | ||
| # estate mechanism — governance verifies the lock and forbids inline SHAs | ||
| # alongside it). Every job below has a same-named recipe in the root | ||
| # Justfile; keep them in lockstep so `just check` means the same thing | ||
| # locally as this gate. Toolchain is the runner's ambient Rust (the crate | ||
| # declares rust-version 1.80; there is deliberately no pinned toolchain | ||
| # action here, to keep the lockfile surface to checkout alone). No | ||
| # #![allow(dead_code)] workarounds: dead code here is either wired or | ||
| # deleted (see the never-allow-dead-code landmine in STATE.a2ml). | ||
| name: rust-ci | ||
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - 'aletheia/**' | ||
| - 'Justfile' | ||
| - '.github/workflows/rust-ci.yml' | ||
| pull_request: | ||
| paths: | ||
| - 'aletheia/**' | ||
| - 'Justfile' | ||
| - '.github/workflows/rust-ci.yml' | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| group: rust-ci-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| defaults: | ||
| run: | ||
| working-directory: aletheia | ||
| jobs: | ||
| build: | ||
| name: build (debug + release) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - name: Toolchain versions | ||
| run: cargo --version && rustc --version | ||
| - name: Build all targets (debug, locked) | ||
| run: cargo build --locked --all-targets | ||
| - name: Build release (locked) | ||
| run: cargo build --locked --release | ||
| test: | ||
| name: test (unit + integration) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - name: Full test suite (locked) | ||
| run: cargo test --locked | ||
| fmt: | ||
| name: fmt --check | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - name: Check formatting | ||
| run: cargo fmt --check | ||
| clippy: | ||
| name: clippy -D warnings | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - name: Lint all targets, warnings denied | ||
| run: cargo clippy --locked --all-targets -- -D warnings | ||
| deps-check: | ||
| name: zero-dependency check | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@v7.0.1 | ||
| - name: Enforce the zero-dependency RSR Bronze constraint | ||
| run: | | ||
| if cargo tree --depth 1 | tail -n +2 | grep -q '[a-z]'; then | ||
| echo "ERROR: Aletheia must have zero dependencies (see aletheia/CLAUDE.md)" | ||
| cargo tree --depth 1 | ||
| exit 1 | ||
| fi | ||
| echo "OK: zero dependencies" |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,33 +1,23 @@ | ||
| # SPDX-License-Identifier: MPL-2.0 | ||
| # | ||
| # Estate-policy exemptions for legacy demonstration files under | ||
| # absolute-zero/ (submodule, pinned to hyperpolymath/absolute-zero) and | ||
| # aletheia/ subdirs. These pre-date the estate-wide | ||
| # ReScript→AffineScript migration; the absolute-zero/ entries mirror | ||
| # that repo's own .hypatia-ignore (kept here defensively in case | ||
| # hypatia scans through the submodule boundary). They are | ||
| # demonstration scaffolds, not load-bearing code paths. | ||
| # Hypatia scanner exemptions for maa-framework. There are currently NO | ||
| # active exemptions: this file is intentionally rules-free, kept as an | ||
| # audit record so the absence of exemptions is a deliberate state rather | ||
| # than a missing file. | ||
| # | ||
| # TODO 2026-Q3: migrate these to AffineScript and drop the exemptions. | ||
|
|
||
| cicd_rules/banned_language_file:absolute-zero/src/AuditTrail.res | ||
| cicd_rules/banned_language_file:absolute-zero/interpreters/rescript/malbolgeInterpreter.res | ||
| cicd_rules/banned_language_file:absolute-zero/examples/SafeDOMExample.res | ||
| cicd_rules/banned_language_file:aletheia/examples/SafeDOMExample.res | ||
|
|
||
| # Go-language demonstration of "nop" semantics in the absolute-zero | ||
| # subdirectory. Mirrors the file in the standalone absolute-zero repo's | ||
| # own .hypatia-ignore. | ||
| cicd_rules/banned_language_file:absolute-zero/examples/go/nop.go | ||
|
|
||
| # Java/Kotlin/Swift demonstration files in the absolute-zero examples | ||
| # tree. Same rationale as the .res/.go entries above — these are part of | ||
| # the vendored language-demo subtree, not load-bearing code. Will | ||
| # collapse to a single `absolute-zero/examples/**` file_pattern entry in | ||
| # .hypatia-baseline.json once standards#180 (file_pattern glob matching | ||
| # in in_baseline()) merges. | ||
| cicd_rules/banned_language_file:absolute-zero/examples/java/Nop.java | ||
| cicd_rules/banned_language_file:absolute-zero/examples/java/BalancedOps.java | ||
| cicd_rules/banned_language_file:absolute-zero/examples/kotlin/Nop.kt | ||
| cicd_rules/banned_language_file:absolute-zero/examples/kotlin/BalancedOps.kt | ||
| cicd_rules/banned_language_file:absolute-zero/examples/swift/Nop.swift | ||
| # HISTORY (pruned 2026-09-21, issue #98): | ||
| # - 10 cicd_rules/banned_language_file entries (9 absolute-zero/ demo | ||
| # files + aletheia/examples/SafeDOMExample.res) were dropped after | ||
| # verifying every referenced path dead at the pinned submodule commit: | ||
| # the ReScript->AffineScript migration landed upstream and the vendored | ||
| # demo subtree is gone. The TODO 2026-Q3 comment and the standards#180 | ||
| # note went with them (standards#180 has since merged — file_pattern | ||
| # globs are available if per-file exemptions ever return). | ||
| # - Upstream follow-up lives in the owning repo, not here: | ||
| # hyperpolymath/absolute-zero#77 (prune that repo's own stale entries). | ||
| # | ||
| # VERIFY (re-run before adding any exemption back): | ||
| # git submodule status absolute-zero # note the pinned commit | ||
| # for f in <paths>; do test -e "$f" && echo "ALIVE: $f"; done | ||
| # An exemption for a path that does not exist at the pinned commit is | ||
| # theater, not coverage — do not re-add dead entries. |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.