Repository navigation
fix(js-runtimes): make the crate its own workspace root - #1299
Conversation
The governance and js-runtimes reusables check tools/js-runtimes out at .standards-js/ inside the caller's checkout, then run `cargo install --locked --path` on it. When the caller's root Cargo.toml is a workspace, cargo walks up from the staged crate, finds that workspace, and refuses: error: current package believes it's in a workspace when it's not So "JS runtimes — environment provisions Bun first" fails on any Rust-workspace consumer pinned at 75bd599; hyperpolymath/hypatia#929 hit it first. Callers without a root workspace, such as palimpsest-license, pass. An empty [workspace] table makes the crate its own root wherever it is staged. Standards has no root workspace, so nothing changes here: the lockfile is untouched, and `cargo test --locked` still passes (8 tests). Checked in a probe repository with a root workspace and the crate staged at .standards-js/tools/js-runtimes: `cargo metadata` fails (101) with the current manifest and passes with this one, and the job's `cargo install --locked` now builds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LET2eHeDbN3b4WuxYjMUX9
|
Warning Review limit reachedYou'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 30 minutes. View limit details
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. Comment |
|
🟢 conformant · commit
K9 live corpus (L0–L2): 2 finding(s) / scope notes
Scope: DEED syntax and K9 contracts L0–L2. L3 signature verification and routed coordination dialects are not certified. Green is limited to this scope. Orange is missing evidence; grey is an explicit scope exclusion. Logs and report.json are in the dated conformance-evidence artifact on the linked run. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
|
Add Carrot credits or activate Agent usage billing to use Autofix |
…one entry The two CI-fix commits each added the same `.standards-js/tools/js-runtimes` line with its own comment. One entry, with a note on why it exists and when it can go (the governance pin reaching hyperpolymath/standards#1299, which makes that crate its own workspace root). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
#440 carries the same exclude (its CI-fix commit 78a70c2) and merges first; byte-identical text here means the two land without a conflict. It can go once the governance pin reaches hyperpolymath/standards#1299, which makes that crate its own workspace root. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
…#929) ## Why GitHub started enforcing `actions.lock` when each job is set up (around 2026-10-15). Since then, every job in a workflow that calls a standards reusable has died at `Set up job` with `invalid lockfile pin`. That covers Governance, Hypatia Security Scan and Secret Scanner. GitHub checks a reusable workflow's actions against the **callee's** `actions.lock` at the called SHA. Standards' lock at the commits this repo pinned (`da2c748`, `571cc73`, `2479cf7`) gives leaf actions their own SHA as `ref:`, which the runner rejects; `lock-selfcheck` rates all three POISON. ## What 1. **Repin (e68277c).** All five standards callers now pin **`75bd599`**, standards `main`. It is green, and `lock-selfcheck` rates it SELF-CONSISTENT. The interfaces are compatible, and `actions.lock` needs no change. 2. **Placeholder UUIDs in the Bitbucket mock (366009f).** The strict `UUID v8/v7 conformance` jobs now run. They flagged four invented UUIDs in an unused fixture, which now get a version nibble of 8 and a variant nibble from 8 to b. 3. **`.gitleaksignore` (abbe382).** 75bd599 adds a gating full-history gitleaks pass. Its five historical false positives sit in files f2fe2df deleted: a k8s Secret *template*'s `CHANGE_ME_IN_PRODUCTION` placeholders, and a Prometheus recording-rule name. They are ignored by exact `commit:file:rule:line` fingerprint only. 4. **Merges #928 (114d015, unchanged).** It makes `ActionsLock` accept this repo's own v0.0.3 lock, which turns E2E/Integration green. The two PRs merge in either order. 5. **Explicit secrets (6162439).** `secrets: inherit` is replaced with exactly what each callee declares: `HYPATIA_SCAN_PAT` for hypatia-scan, the seven forge keys for mirror, and nothing for scorecard and secret-scanner (standards#1108 §6b). This clears four WH008 baseline findings. 6. **Cargo workspace exclude (c19c465).** The governance JS-runtimes job stages standards' crate at `.standards-js/`, and this repo's root workspace made cargo refuse to build it. The root fix is hyperpolymath/standards#1299; this exclude is harmless after it lands. ## Verified - Governance lock gate at `75bd599` (gh-actions-lock v0.2.0): exit 0. - `check-uuid-v8.sh --strict .`: exit 0. - Gitleaks 8.18.4 (the pinned binary) with the 75bd599 baseline: history pass 5 leaks, then 0; tree pass clean. A planted secret at the same path and line is still caught. - With the crate staged as CI does, `cargo metadata` fails before c19c465 and passes after. The job's `cargo install --locked` builds, and `js-runtimes provision .` exits 0. - **Same repin as hyperpolymath/palimpsest-license#187**, which passes all its checks. ## Open - **`Validate Hypatia Baseline` needs an owner decision.** The scanner pin moved from `0e91342` to `51ab649`, which surfaces 36 findings the baseline never covered: 2 `invalid_actions_lock` (cleared by the pending standards `hypatia-ref` bump past #928), and 34 from newer rules (WH013, RE001, RE004/5, `hardcoded_tmp`, `eval_in_shell`). Details and options are in the PR comments. - **Already red on `main`:** - `abi-codegen-drift`: stale Idris2 cache key; - `Rust License & Ban Check`: `deny.toml` schema; - `Rust Dependency Audit`: RustSec advisories; - Mirror: Bitbucket access. Proposed fixes for each are in the PR comments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LET2eHeDbN3b4WuxYjMUX9 --------- Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: CodeRabbit <noreply@coderabbit.ai>



Why
governance-reusable.ymlandjs-runtimes-reusable.ymlchecktools/js-runtimesout at.standards-js/inside the caller's checkout, then runcargo install --locked --pathon it. When the caller's rootCargo.tomlis a workspace, cargo walks up from the staged crate, finds that workspace, and refuses:So
governance / JS runtimes — environment provisions Bun firstfails on every Rust-workspace consumer pinned at 75bd599. hyperpolymath/hypatia#929 hit it first. Callers without a root workspace pass, for example hyperpolymath/palimpsest-license#187.What
tools/js-runtimes/Cargo.tomlgains an empty[workspace]table, with a comment saying why. That makes the crate its own workspace root wherever it is staged.Standards has no root
Cargo.toml, so nothing changes in this repository:Cargo.lockis untouched.Verified
.standards-js/tools/js-runtimes:cargo metadata: exit 101 with the current manifest, 0 with this one;cargo install --quiet --locked --path …: builds.cargo test --locked --manifest-path tools/js-runtimes/Cargo.tomlpasses (8 tests).hypatia#929 carries a consumer-side
exclude = [".standards-js"]so it can go green before this lands. That exclude is harmless afterwards. Other Rust-workspace repos need this fix before the estate-wide repin.Generated by Claude Code