Skip to content

Harden security checks and separate K9/DEED governance evidence - #243

Merged
hyperpolymath merged 8 commits into
mainfrom
arena/b1571410-metamanifold-webui
Oct 23, 2026
Merged

hyperpolymath merged 8 commits into
mainfrom
arena/b1571410-metamanifold-webui

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Scope

Security/governance follow-up to #227. All four Codex findings on that old PR already landed in #229/#234 and follow-ups; I answered/resolved its threads and closed it as superseded, rather than merging a conflicting branch that could undo newer fixes. CodeRabbit's remaining notices are account limits/billing, not code questions.

Changes

  • Add pinned, least-privileged full-history/working-tree secret scanning and default-branch Scorecard publication; no inherited secrets or new alert suppressions.
  • Add Dependabot, SECURITY.md, editor settings and a repository-specific AI manifest without changing existing licensing/architecture.
  • Add independent pinned K9 conformance and its artifact to the PR verdict. The current empty corpus is explicitly grey, not a semantic pass. Missing semantic evidence fails closed. Keep DEED syntax and advisory Hypatia as separate evidence families.
  • Bound Julia CI at 90 minutes and preserve producer and log-writer failures. Add 8 negative/mutation tests and 4 exit-combination tests.
  • Refresh the bun lockfile within current major ranges for real security advisories, notably DOMPurify, Vite and transitive build dependencies; raise minimum Vite to 6.4.5 and Router DOM to 6.30.6. This is why the lockfile changes. No generated assets are included.
  • Audit high/critical frontend dependencies in CI.

Verification

Bun 1.3.10: frozen install, TypeScript checking, 72 frontend tests / 200 assertions, production build, and high/critical audit pass. Full audit reduced from 31 advisories (1 critical, 13 high, 14 moderate, 3 low) to 2 moderate Router advisories. This is not a zero-vulnerability claim.

Canonical pinned DEED lint, all 39 governance contract checks, 8 weakening mutations, 4 pipeline-exit combinations, unique-key YAML parsing, all embedded shell syntax, Sonar reliability lint, proof axiom audit (7 modules), and git diff checks pass locally.

Julia/R/Agda/Nickel are not installed in this sandbox; hosted CI must supply those results. No local runtime/semantic pass is claimed.

Hosted wrapper fixes

The first run found two issues in the pinned standards wrappers. Fork-local copies retain the same immutable standards validator/renderer/config sources and all gates, but fix the terminal optional-log copy for an empty K9 corpus and upgrade Gitleaks from 8.18.4 to 8.30.1 (upstream release-asset digest). The old rules falsely matched historical DNA/FASTQ and schema labels; no history exclusions or local rule suppressions were added. A synthetic AWS credential must still fail in CI. Three K9 copy cases and a credential-sensitivity test also pass locally. Hosted checks are rerunning.

Remaining / intentionally not done

See docs/release-notes/2026-10-23-governance-security.md for the source Hypatia run and complete triage. Two moderate React Router advisories need a v7 migration review. Estate language bans conflict with the settled React/TS stack and independent Python reference oracles; W3C SVG namespace URIs are not HTTP requests. Do not fix those by rewriting the architecture or breaking namespaces. No configured mirror target exists. Existing upstream licensing headers remain protected. Fleet bots without report-backs remain not_run. No fake conformance reports have been added.

The integration returns 403 for code-scanning/Dependabot alert listing and the sandbox blocks Actions artifact/log storage hosts; no alerts have been dismissed. Published grids/check APIs are still readable. Scorecard's default-branch publication can only be verified after landing; K9 has no committed contracts and therefore cannot claim substantive contract coverage yet.

PR #228 security follow-up (1be406d)

Independent verification found that the recorded conflict-resolution tree for #228 is identical to main; #228 is being closed as superseded, not conflict-merged. Its valid leaf-PD finding is already implemented in unmerged #242/#244 and is not duplicated here. #242's integration run 39986326202 passed all six jobs; #244's Julia validation remains pending at review time.

The R-evaluation warning was not dismissed as a language-detector false positive. This follow-up validates metadata column identifiers before they enter PERMANOVA's parsed R formula and validates package names before provenance interpolates them into R source. Expressions, quotes/escapes, controls and reserved formula terms are covered by regression cases. Plain identifiers preserve the existing formula and scientific tests; non-identifier metadata columns must be renamed, as documented in the function contract.

Local verification for the new commit: 39 governance assertions, 8 weakening mutations, 3 K9 copy cases, 4 CI logging cases, scanner-boundary tests, complete working-tree/history shell scanning, git diff checks and syntax parsing of all four changed Julia files pass. Syntax parsing is not execution: the new Julia/R regressions await hosted CI. This does not certify all remaining R call sites or dismiss outstanding advisory findings.

Main advanced during review

#242 has now merged as b656d2a99e53267108d51ad87d7eaee13222d368 (16:46:42 UTC), after its full integration suite passed. The leaf-PD fix is therefore on main. #228 is confirmed closed/unmerged. This PR (#243) now has conflicts with the newly updated main and is not merge-ready; no main-merge commit or unrequested history rewrite has been made. The new R-boundary/scanner tests are running at 1be406d; earlier passing checks must not be mistaken for validation of a future rebased head.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-23T16:54:42.054889Z
We couldn’t complete this review. Comment @codex review to try again.
3ce5e40 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 20 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 1f0acb1b-13e4-4ffc-a57d-15fcac6e7364
📥 Commits

Reviewing files that changed from the base of the PR and between d84400e and 3ce5e40.

⛔ Files ignored due to path filters: 1
  • frontend/bun.lock is excluded by !**/*.lock
📒 Files selected for processing: 23
  • .github/dependabot.yml
  • .github/workflows/ci.yml
  • .github/workflows/governance.yml
  • .github/workflows/k9-conformance-reusable.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner-reusable.yml
  • .github/workflows/secret-scanner.yml
  • 0-AI-MANIFEST.a2ml
  • MetaManifold-WebUI_chora.deed
  • SECURITY.md
  • docs/release-notes/2026-10-23-governance-security.md
  • frontend/package.json
  • scripts/check-governance-contract.sh
  • scripts/ci/check-shell-secrets.sh
  • scripts/tests/test-ci-logging.sh
  • scripts/tests/test-governance-contract.sh
  • scripts/tests/test-k9-log-copy.sh
  • scripts/tests/test-scanner-boundaries.sh
  • scripts/tests/test-secret-scanner.sh
  • src/analysis/analysis.jl
  • src/core/provenance.jl
  • test/unit/test_permanova.jl
  • test/unit/test_provenance.jl
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Fork governance

Lane Status Run
DEED syntax (repo deed) 🟢 conformant run 39990688255
K9 conformance (L0–L2; L3 not verified) green (job: success) same run
Hypatia verdict grid purple (job: success) same run

Hypatia grid purple

🟣 critical · commit 3ce5e40922e3 · run 39990688255

Reporter Status Critical High Medium Minor Since previous revision
Hypatia scan 🟣 critical 45 60 26 0 — no comparable baseline
panic-attack assail 🔴 high 0 6 11 0 — no comparable baseline
pons asinorum 🟡 medium 0 0 1 0 — no comparable baseline
rhodibot (RSR compliance) 🟠 indeterminate 0 0 0 0 — no comparable baseline
panicbot (panic recovery, error handling) 🟠 indeterminate 0 0 0 0 — no comparable baseline
echidnabot (formal verification: proofs/) 🟠 indeterminate 0 0 0 0 — no comparable baseline
seambot (integration health: API routes) 🟠 indeterminate 0 0 0 0 — no comparable baseline
finishingbot (release readiness) 🟠 indeterminate 0 0 0 0 — no comparable baseline
accessibilitybot (WCAG on the React UI) 🟠 indeterminate 0 0 0 0 — no comparable baseline
glambot (presentation quality) 🟠 indeterminate 0 0 0 0 — no comparable baseline
cipherbot ⚪ not applicable 0 0 0 0 — no comparable baseline
sustainabot ⚪ not applicable 0 0 0 0 — no comparable baseline
Hypatia scan: 131 finding(s)
  • critical cicd_rules/banned_language_file — frontend/src/views/run/parseFilterYaml.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/encode.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/charts.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/export.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/figure.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/legend.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/figure/types.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/download.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/text.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/timeago.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/utils/text.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useUnsavedGuard.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useApi.test.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useApi.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useAnalysis.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useSSE.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useTabParam.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useNavRefresh.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/hooks/useJobEvents.ts — TypeScript file detected -- banned language
  • critical cicd_rules/banned_language_file — frontend/src/about.ts — TypeScript file detected -- banned language
  • 111 more; see the structured report in the artifact.
panic-attack assail: 17 finding(s)
  • high DynamicCodeExecution — src/pipeline/dada2/context.jl — eval/Meta.parse in src/pipeline/dada2/context.jl
  • high DynamicCodeExecution — src/analysis/analysis.jl — eval/Meta.parse in src/analysis/analysis.jl
  • high DynamicCodeExecution — src/analysis/differential.jl — eval/Meta.parse in src/analysis/differential.jl
  • high DynamicCodeExecution — src/core/provenance.jl — eval/Meta.parse in src/core/provenance.jl
  • high DynamicCodeExecution — scripts/check-julia-syntax.jl — eval/Meta.parse in scripts/check-julia-syntax.jl
  • high DynamicCodeExecution — test/unit/test_permanova.jl — eval/Meta.parse in test/unit/test_permanova.jl
  • medium UnsafeFFI — src/core/memory_probe.jl — 3 ccall/FFI calls in src/core/memory_probe.jl
  • medium InputBoundary — src/server/routes/runs.jl — 2 JSON3.read/JSON.parse call(s) with 0 try block(s) in src/server/routes/runs.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/composition.jl — 6 JSON3.read/JSON.parse call(s) with 2 try block(s) in src/server/routes/composition.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/studies.jl — 4 JSON3.read/JSON.parse call(s) with 2 try block(s) in src/server/routes/studies.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — src/server/routes/analysis.jl — 9 JSON3.read/JSON.parse call(s) with 4 try block(s) in src/server/routes/analysis.jl — these throw on malformed input; wrap in try/catch
  • medium UnsafeFFI — install.jl — 1 ccall/FFI calls in install.jl
  • medium ProofDrift — test/unit/test_occupancy_grade.jl — 2 `@test x isa Y` assertion(s) with no value check — type-only tests may substitute for an unwritten formal theorem in test/unit/test_occupancy_grade.jl
  • medium ProofDrift — test/unit/test_evidence.jl — 1 `@test x isa Y` assertion(s) with no value check — type-only tests may substitute for an unwritten formal theorem in test/unit/test_evidence.jl
  • medium InputBoundary — bench/advanced_zero_handling/benchmark.jl — 1 JSON3.read/JSON.parse call(s) with 0 try block(s) in bench/advanced_zero_handling/benchmark.jl — these throw on malformed input; wrap in try/catch
  • medium InputBoundary — frontend/src/figure/charts.ts — 1 JSON.parse call(s) with 0 try block(s) in frontend/src/figure/charts.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
  • medium InputBoundary — frontend/src/components/alphaMetrics.tsx — 1 JSON.parse call(s) with 0 try block(s) in frontend/src/components/alphaMetrics.tsx — JSON.parse throws SyntaxError on malformed input; wrap in try-catch
pons asinorum: 1 finding(s)
  • medium unreachable-after-jump — ./frontend/src/components/PublicationTablesPanel.tsx:208 — statement is unreachable after an unconditional jump (T0, HEURISTIC)
rhodibot (RSR compliance): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
panicbot (panic recovery, error handling): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
echidnabot (formal verification: proofs/): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
seambot (integration health: API routes): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
finishingbot (release readiness): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
accessibilitybot (WCAG on the React UI): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
glambot (presentation quality): not_run — enrolled, but no report-back was received
  • 🟠 indeterminate: enrolled, but no report-back was received
cipherbot: not_applicable — no cryptography is implemented in this repository
  • ⚪ not applicable: no cryptography is implemented in this repository
sustainabot: not_applicable — fleet adapter slot reserved; no adapter exists yet (gitbot-fleet README)
  • ⚪ not applicable: fleet adapter slot reserved; no adapter exists yet (gitbot-fleet README)

Scope: static findings reported by each row's tool at the named commit. Purple, red, yellow and blue grade the worst finding present; orange is evidence missing, malformed or a scanner that did not run; grey is an explicit scope exclusion with its reason. No row is a security certification. report.json, badge.json and the raw findings are in the verdict-grid artifact on the linked run.

K9 L0–L2 green

🟢 conformant · commit 3ce5e40922e3 · run 39990688255 · validator hyperpolymath/standards@c6d78606f392

Category Status Pass Fail Indeterminate N/A Since previous revision
K9 contract typecheck 🟢 conformant 1 0 0 0 ↔ unchanged
K9 validator self-test 🟢 conformant 37 0 0 0 ↔ unchanged
K9 live corpus (L0–L2) ⚪ not applicable 0 0 0 1 ↔ unchanged
K9 live corpus (L0–L2): 1 finding(s) / scope notes
  • live corpus — not_applicable: No tracked K9 contracts or routing files.

Scope: K9 components L0–L2 against contract v1.0.0 at the named standards commit. L3 signature verification and routed coordination-dialect files are not certified. Green is limited to this scope. Orange is missing evidence; yellow is grandfathered debt or warnings; grey is an explicit scope exclusion. report.json, badge.json and the validator logs are in the k9-grid artifact on the linked run.

Copy link
Copy Markdown
Owner Author

Hosted checks exposed two upstream-wrapper issues, fixed in the latest commit: (1) K9 rendered its valid grid but a terminal optional corpus-log copy returned 1 for the empty corpus; the local wrapper now uses an explicit conditional, preserving canonical validation/ratchets, with three regression cases. Failed jobs also take precedence over a rendered green status in the summary. (2) Gitleaks 8.18.4 flagged historical biological data and JS schema labels. Reproducing its legacy rules found 211,428 matches, dominated by low-entropy DNA/FASTQ. The wrapper now uses upstream Gitleaks 8.30.1 with its release-asset SHA256, retaining the same standards baseline and all history/working-tree/shell checks. No local suppressions or history exclusions were added. Current local history/tree scans pass; a synthetic AWS credential still fails under the expected detector, and that sensitivity test is now in CI. Hosted scans are rerunning. Governance contract now has 39 passing checks.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f1fdb6e830

ℹ️ 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".

Comment thread .github/workflows/secret-scanner-reusable.yml Outdated
Comment thread .github/workflows/secret-scanner-reusable.yml Outdated
Comment thread .github/workflows/secret-scanner-reusable.yml
Comment thread .github/workflows/secret-scanner-reusable.yml Outdated
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

Copy link
Copy Markdown
Owner Author

Follow-up: addressed all four Codex scanner findings and resolved the review threads, with tests for redaction, deleted historical shell credentials and AsciiDoc error handling. The first custom history run also caught a variable-reference test fixture; matching exemptions per assignment fixes that without letting a harmless variable hide a literal credential later on the same line. The latest completed scanner run (39988118383) passed all working-tree/history/AsciiDoc/shell/Rust checks. Sonar then flagged Bash conditional/default-case practices and HTTPS redirects; those have now been corrected and checks rerun. Full integration CI is still required on the newest commit; this PR remains unmerged.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

hyperpolymath and others added 7 commits October 23, 2026 16:52
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…ntials

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…ical test fixtures

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@hyperpolymath
hyperpolymath force-pushed the arena/b1571410-metamanifold-webui branch from 1be406d to 2b62def Compare October 23, 2026 16:54
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@hyperpolymath
hyperpolymath merged commit a9fb609 into main Oct 23, 2026
6 checks passed
@hyperpolymath
hyperpolymath deleted the arena/b1571410-metamanifold-webui branch October 23, 2026 16:54
@sonarqubecloud

Copy link
Copy Markdown

Copy link
Copy Markdown
Owner Author

Landing update and CI repair

#243 is now merged as a9fb609. The user approved rebasing onto updated main; the rebase preserved the already-landed #242 changes and all local frontend/scanner/governance checks passed. A unique-key YAML check caught a duplicate Julia timeout introduced by overlapping CI edits. Before the correction push landed, the remote branch received a main merge and #243 was merged/deleted; both guarded push attempts correctly refused to overwrite that remote state.

I have opened #247 from the same session branch, based on the merged main, containing only removal of the duplicate three-line timeout block. No security, application, test, licensing or frontend changes are reverted. The single 90-minute limit remains. Main currently fails to load CI; #247 restores valid YAML and its hosted CI jobs now start.

Local final-head checks: 8 unique-key workflow parses, 84 embedded Bash parses, 39 governance assertions, 8 rejected weakening mutations, all 4 producer/logger exit combinations, and git diff checks pass. New Julia/R integration remains pending; no old-head success is substituted for final-head validation. #247 must land before this CI defect is considered repaired on main.

hyperpolymath added a commit that referenced this pull request Oct 23, 2026
…I workflow

- Read req.body non-destructively in _statistics_body via copy(req.body),
  enforce MAX_STATISTICS_REQUEST_BYTES using UTF-8 byte length (ncodeunits)
  when req.body is already an AbstractString, and accept generic
  AbstractString payloads (e.g. SubString).
- Add regression tests in test_validated_statistics.jl covering repeated
  reads of the same HTTP.Request, multibyte UTF-8 size limits, and
  SubString payloads.
- Remove the duplicate timeout-minutes key in .github/workflows/ci.yml
  introduced by the PR #242/#243 merge, run validated_statistics first
  within the fast pre-flight CI step, and SHA-pin actions/checkout in
  .github/workflows/doi.yml.

Signed-off-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
hyperpolymath added a commit that referenced this pull request Oct 23, 2026
Main moved while this branch was in review: #242 made tree path building
linear in `TreeShapes.tsx`, and #243 taught the cladistics builder the
node-local subtree-PD convention. Both are the fixes this branch carried,
so the merge keeps main's implementation and drops the duplicates rather
than shipping two spellings of the same change.

What remains branch-specific is what main does not have yet: the
`_request_json` guard for malformed bodies (and its Oxygen serializer
hook), the report-backs directory the deed declares, and the two type-only
test assertions panic-attack flagged.

Signed-off-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
hyperpolymath added a commit that referenced this pull request Oct 23, 2026
## Fix

Remove the second `timeout-minutes` key from the Julia job in
`.github/workflows/ci.yml`. Retain the explicit 90-minute budget and all
existing tests, relevance gates, and required context names.

#243 merged as `a9fb609` with overlapping 90- and 60-minute YAML keys.
Main workflow run `39990718300` consequently failed before jobs could
start. This is a focused three-line repair, not a waiver of CI.

This carries the exact tree of #247 (`46665dd`) onto the current session
branch with the repository-required DCO signoff; #247's commit has no
`Signed-off-by:`. The commit parent is current main `a9fb609`, with no
merge commit and no other file changes. Duplicate replacement #252 was
closed after #243 merged.

## Verification on the exact tree

- Governance contract: **39/39 passed**; all **8 weakening mutations
rejected**
- CI producer/logger exit combinations: **4/4 passed**; K9 optional-log
cases: **3/3 passed**
- Scanner boundaries: working-tree and deleted-history shell credentials
blocked without disclosure; Rust findings redacted; all six
clean/error/finding AsciiDoc cases passed
- Unique-key YAML parsing passed for **11 files**; `bash -n` passed for
**84 embedded run blocks**
- Equivalent local clone: full-history custom shell scan and real
Gitleaks 8.30.1 working-tree/history scans clean
- `git diff --check` passed
- Post-#243 default-branch Scorecard run `39990720761` succeeded through
analysis, SARIF upload, and artifact upload

Julia/R execution requires hosted CI; no local runtime pass is claimed.
#247's hosted run `39990855274` is testing the same tree, but this
commit will also retain its own fresh checks.

## Scope

- [x] Current-main ordinary commit with `Signed-off-by:` (DCO)
- [x] Only `.github/workflows/ci.yml` changed
- [x] No application, dependency, licence, generated, or vendored-file
changes

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
hyperpolymath added a commit that referenced this pull request Oct 23, 2026
#243 merged a ci.yml with two `timeout-minutes` keys on the Julia job, so
the workflow failed before any job started (run 39992746854 on this branch
had zero jobs). #254 removes the duplicate; the merge carries it so the
suite can actually run.

Signed-off-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>

Copy link
Copy Markdown
Owner Author

Post-merge reconciliation and validation are complete. #243 merged as a9fb609 while the independent current-main replacement was being prepared; that duplicate (#252) was closed without merging. The merged workflow exposed a duplicate Julia timeout-minutes key, so focused DCO-signed #254 removed the redundant 60-minute entry and merged as 90a1aa2; unsigned duplicate #247 was also closed without merging.

Final main-branch evidence at 90a1aa2: CI run 39996033653 passed, including the complete Julia/R job (27m18s), occupancy typed peak/disagreement, Agda, validated statistics, benchmarks, and coverage. CodeQL (39996033427), Scorecard including SARIF publication (39996034484), DEED/independent K9/Hypatia governance (39996034661), all three secret-scanner jobs (39996033745), and DOI (39996033652) also passed. Independent local validation passed 39 governance checks, 8 weakening-mutation rejections, scanner failure/redaction boundaries, unique-key YAML/84 shell blocks, and real Gitleaks working-tree/history scans. Advisory Hypatia debt and the two documented moderate React Router advisories remain explicitly triaged, not falsely claimed as zero findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant