Skip to content

Arena/8fcd3755 apodeixis jl - #2

Merged
hyperpolymath merged 6 commits into
mainfrom
arena/8fcd3755-apodeixis-jl
Oct 22, 2026
Merged

hyperpolymath merged 6 commits into
mainfrom
arena/8fcd3755-apodeixis-jl

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Changes

RSR Quality Checklist

Required

  • Tests pass (just test or equivalent)
  • Code is formatted (just fmt or equivalent)
  • Linter is clean (no new warnings or errors)
  • No banned language patterns (no Python, Go, TypeScript or ReScript; JavaScript runs Bun > Deno > pnpm > npm)
  • No unsafe blocks without // SAFETY: comments
  • No banned functions (believe_me, unsafeCoerce, Obj.magic, Admitted, sorry)
  • SPDX license headers present on all new/modified source files
  • No secrets, credentials, or .env files included

As Applicable

  • Repo deed (*_chora.deed) (status) / (maturity) updated (if project state changed)
  • Repo deed (ecosystem) updated (if integrations changed)
  • Repo deed (meta) and/or docs/decisions/ updated (if architectural decisions changed)
  • docs/status/ROADMAP.adoc updated (if milestones or next actions changed)
  • Documentation updated for user-facing changes
  • TOPOLOGY.md updated (if architecture changed)
  • CHANGELOG or release notes updated
  • New dependencies reviewed for license compatibility (MPL-2.0 / MPL-2.0)
  • ABI/FFI changes validated (src/interface/abi/ and src/interface/ffi/ consistent)

Testing

Screenshots

hyperpolymath and others added 6 commits October 22, 2026 15:32
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: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between 8be97bb and d90fde4.

📒 Files selected for processing: 10
  • Project.toml
  • README.adoc
  • docs/README.adoc
  • docs/architecture/APODEIXIS-MVP-IMPLEMENTATION-PLAN.adoc
  • docs/architecture/APODEIXIS-ULTRAPLAN.adoc
  • docs/architecture/APODEIXIS-VERIFICATION-DESIGN.adoc
  • docs/architecture/REPOSITORY-MAP.adoc
  • scripts/apodeixis.jl
  • src/Apodeixis.jl
  • test/runtests.jl
+-----------------------------------------------------------------------------------------------------------------------------------+
| Don't use manual procedures. A shell script or batch file will execute the same instructions, in the same order, time after time. |
+-----------------------------------------------------------------------------------------------------------------------------------+
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
🧪 Generate unit tests (beta)

❌ Error committing Unit Tests locally.

  • Commit to this branch
  • Create a new PR
  • 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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 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 ✅ Completed 2026-10-22T17:39:55.167128Z d90fde4 PR opened
ℹ️ 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.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

K9 L0–L2 green

🟢 conformant · commit d90fde4974f0 · run 39823770373 · validator hyperpolymath/standards@b3ce78e1a8cb

Category Status Pass Fail Indeterminate N/A Since previous revision
K9 contract typecheck 🟢 conformant 1 0 0 0 — no comparable baseline
K9 validator self-test 🟢 conformant 37 0 0 0 — no comparable baseline
K9 live corpus (L0–L2) 🟢 conformant 13 0 0 0 — no comparable baseline

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.

@github-actions

Copy link
Copy Markdown

Hypatia grid purple

🟣 critical · commit d90fde4974f0 · run 39823770169

Reporter Status Critical High Medium Minor Since previous revision
Hypatia scan 🔴 high 0 6 6 0 — no comparable baseline
panic-attack assail 🟣 critical 5 1 6 0 — no comparable baseline
pons asinorum 🟢 clean 0 0 0 0 — no comparable baseline
Hypatia scan: 12 finding(s)
  • high code_scanning_alerts/CSA001 — 0-AI-MANIFEST.a2ml — Code scanning (Hypatia): hypatia/root_hygiene/missing -- Hypatia root_hygiene: missing -- 0 day(s) old
  • high code_scanning_alerts/CSA001 — .github/workflows/actions.lock — Code scanning (Hypatia): hypatia/workflow_audit/invalid_actions_lock -- Hypatia workflow_audit: invalid_actions_lock -- 0 day(s) old
  • high code_scanning_alerts/CSA001 — .github/workflows/actions.lock — Code scanning (Hypatia): hypatia/workflow_hardening/invalid_actions_lock -- Hypatia workflow_hardening: invalid_actions_lock -- 0 day(s) old
  • high workflow_hardening/invalid_actions_lock — .github/workflows/actions.lock — actions.lock failed closed: {:line, 4, {:unsupported_version, "v0.0.3"}}
  • high workflow_audit/invalid_actions_lock — .github/workflows/actions.lock — Invalid .github/workflows/actions.lock: {:line, 4, {:unsupported_version, "v0.0.3"}}. Regenerate and verify it with gh actions-lock.
  • high root_hygiene/missing — 0-AI-MANIFEST.a2ml — Required file missing
  • medium content_patterns/npx_in_workflow — .github/copilot/coding-agent.yml:3 — npx / `npm run` banned in CI -- use `bunx` or `bun run` instead (npm banned 2026-05-25; Deno banned 2026-09-22, standards LANGUAGE-POLICY §1.3)
  • medium code_scanning_alerts/CSA001 — .github/workflows/dogfood-gate.yml — Code scanning (Hypatia): hypatia/workflow_audit/missing_timeout_minutes -- Hypatia workflow_audit: missing_timeout_minutes -- 0 day(s) old
  • medium code_scanning_alerts/CSA001 — . — Code scanning (Hypatia): hypatia/scorecard/DependencyPinning -- Hypatia scorecard: DependencyPinning -- 0 day(s) old
  • medium code_scanning_alerts/CSA001 — .github/copilot/coding-agent.yml — Code scanning (Hypatia): hypatia/content_patterns/npx_in_workflow -- Hypatia content_patterns: npx_in_workflow -- 0 day(s) old
  • medium scorecard/DependencyPinning — . — 1 action-pinning integrity finding(s) in Apodeixis.jl; verify .github/workflows/actions.lock with gh actions-lock
  • medium workflow_audit/missing_timeout_minutes — .github/workflows/dogfood-gate.yml — Job `rsr-score-self` in dogfood-gate.yml has no `timeout-minutes:` declaration. Default is 6 hours — a stuck codeload fetch or runner hang can burn budget. Add `timeout-minutes: 10` (or proportional).
panic-attack assail: 12 finding(s)
  • critical UnboundedAllocation — scripts/merge-actions-lock.rs — Potential unbounded allocation pattern detected in scripts/merge-actions-lock.rs
  • critical UnboundedAllocation — scripts/prune-dependabot-ecosystems.rs — Potential unbounded allocation pattern detected in scripts/prune-dependabot-ecosystems.rs
  • critical UnboundedAllocation — scripts/strip-instruction-blocks.rs — Potential unbounded allocation pattern detected in scripts/strip-instruction-blocks.rs
  • critical CommandInjection — tests/e2e/julia_mint_test.sh — eval usage in tests/e2e/julia_mint_test.sh
  • critical CommandInjection — tests/workflows/self_name_pass_test.sh — eval usage in tests/workflows/self_name_pass_test.sh
  • high DynamicCodeExecution — test/runtests.jl — eval/Meta.parse in test/runtests.jl
  • medium MutationGap — archetypes/julia-library/overlay/test/cases/smoke.jl — 1 @test assertion(s) in archetypes/julia-library/overlay/test/cases/smoke.jl are all type-only (no value/equality checks) — mutation tests will pass trivially; add @test x == expected assertions
  • medium CommandInjection — scripts/check-proofs.sh — 26 potentially unquoted variable expansions in scripts/check-proofs.sh
  • medium InsecureProtocol — tests/workflows/container_kyaml_test.sh — 5 HTTP (non-HTTPS) URLs in tests/workflows/container_kyaml_test.sh
  • medium CommandInjection — tests/workflows/resolve_template_pin_test.sh — 21 potentially unquoted variable expansions in tests/workflows/resolve_template_pin_test.sh
  • medium UnsafeFFI — test/runtests.jl — 3 ccall/FFI calls in test/runtests.jl
  • medium ProofDrift — test/runtests.jl — 2 `@test x isa Y` assertion(s) with no value check — type-only tests may substitute for an unwritten formal theorem in test/runtests.jl

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.

@hyperpolymath
hyperpolymath merged commit 26a56cc into main Oct 22, 2026
113 of 126 checks passed
@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Note

Unit test generation is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Failed to create Coding Agent finishing-touch task.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autofix

@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: d90fde4974

ℹ️ 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 src/Apodeixis.jl
Comment on lines +40 to +42
const _FORBIDDEN_MACROS = Set((
Symbol("@generated"), Symbol("@eval"), Symbol("@fastmath"),
))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reject the @ccall foreign-call syntax

On supported Julia versions, a foreign call written with @ccall remains a :macrocall because this audit intentionally does not expand macros. Since @ccall is absent from this set and unknown macros are rejected only inside an @verified function, a top-level @ccall ... bypasses both the :foreigncall and :ccall checks and can receive POLICY CLEAN despite being unmodeled FFI. Add @ccall (including its qualified form via _macro_symbol) to the foreign-call rejection path.

Useful? React with 👍 / 👎.

Comment thread test/runtests.jl
Comment on lines +236 to +237
@test is_policy_clean(audit_source("global mutable_state = 1"))
@test is_policy_clean(audit_source("function f(); global mutable_state = 1; end"))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove the contradictory global-declaration expectations

These assertions make the advertised Pkg.test() command fail deterministically: the implementation rejects every Expr(:global), and lines 105–112 in this same test file explicitly require these top-level and function-level examples to be rejected, while these lines require them to be policy-clean. The implementation plan also states that global declarations at file scope or inside functions are rejected, so these stale expectations should be aligned with that policy.

Useful? React with 👍 / 👎.

Comment thread src/Apodeixis.jl
Comment on lines +152 to +153
is_function_definition = x.head === :function || _is_short_function_definition(x)
child_verified = is_function_definition && !nested_function ? false : verified

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reset verification scope for anonymous functions

When an annotated function contains an anonymous function such as inner = B -> (@inbounds B[1]), the anonymous function is represented by Expr(:->, ...), which this boundary check does not recognize. Its body is consequently walked with verified=true, so a sufficient mutation score makes the report policy-clean even though the closure is a separate method that can escape and execute later without its own @verified boundary. Treat arrow functions, including those used by do blocks, as nested function boundaries before auditing their bodies.

Useful? React with 👍 / 👎.

Comment thread src/Apodeixis.jl
Comment on lines +96 to +98
elseif x.head === :call && !isempty(x.args)
callee = _callee_symbol(first(x.args))
if callee in _FORBIDDEN_CALLS

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Audit dotted invocations of forbidden callees

When a denylisted operation is invoked with Julia's broadcast syntax, such as eval.([:(x = 1)]), the parser represents the invocation as an Expr(:., ...) rather than an Expr(:call, ...). This branch therefore never checks the callee, and the generic traversal merely visits the eval symbol without reporting it, allowing an actual dynamic escape to receive POLICY CLEAN. Recognize dotted-call expressions and apply the same callee denylist to their underlying function.

Useful? React with 👍 / 👎.

@hyperpolymath
hyperpolymath deleted the arena/8fcd3755-apodeixis-jl branch October 26, 2026 22:24
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