Skip to content

fix(js-runtimes): make the crate its own Cargo workspace root - #1296

Merged
hyperpolymath merged 3 commits into
mainfrom
claude/new-session-th4e9w-jsr-workspace
Oct 19, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
claude/new-session-th4e9w-jsr-workspace

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What

Adds an empty [workspace] table to tools/js-runtimes/Cargo.toml.

Why

The governance reusable checks standards out at .standards-js/ inside the calling repository. When the caller is itself a Cargo workspace (proof-burrower, echidna, echidnabot), cargo walks up the tree, finds the caller's workspace root, and refuses to build:

current package believes it's in a workspace when it's not

This is the failure in the "JS runtimes — environment provisions Bun first" job on hyperpolymath/proof-burrower#116 (job 118046337412). Every reusable caller is green there once the lock is repaired. This job is the only one left red.

Verification

In a proof-burrower worktree with standards checked out at .standards-js/, I ran cargo metadata --no-deps --offline --manifest-path .standards-js/tools/js-runtimes/Cargo.toml:

  • before the change: rc 101, with the CI error;
  • after the change: rc 0.

The fix is at source. No consumer needs an exclude entry.


Generated by Claude Code

Governance's "JS runtimes — environment provisions Bun first" job checks
standards out at .standards-js/ inside the calling repository and runs
`cargo install --path .standards-js/tools/js-runtimes`. When the caller
is itself a Cargo workspace, cargo refuses the nested package:

  error: current package believes it's in a workspace when it's not

Measured on hyperpolymath/proof-burrower#116 (job 118046337412), the
first caller re-pinned to 75bd599; echidna and echidnabot are Cargo
workspaces too. An empty [workspace] table, cargo's own suggested fix,
keeps the crate out of any enclosing workspace. Standards has no root
Cargo.toml, so its own build is unchanged.

Reproduced locally: proof-burrower main with tools/js-runtimes at
.standards-js/ — `cargo metadata --manifest-path` exits 101 with the CI
error before, 0 after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

DEED–K9 green

🟢 conformant · commit 04d0c32789aa · run 39277427829

Category Status Pass Fail Indeterminate N/A Since previous revision
DEED syntax 🟢 conformant 4 0 0 0 ↔ unchanged
K9 contract typecheck 🟢 conformant 1 0 0 0 ↔ unchanged
K9 validator self-test 🟢 conformant 34 0 0 0 ↔ unchanged
K9 positive/negative controls 🟢 conformant 27 0 0 0 ↔ unchanged
K9 live corpus (L0–L2) 🟢 conformant 12 0 0 2 ↔ unchanged
K9 live corpus (L0–L2): 2 finding(s) / scope notes
  • 2-protocols/k9-coordination/examples/minimal.k9 — not_applicable: Routed to another dialect; not validated as a K9 contract.
  • coordination.k9 — not_applicable: Routed to another dialect; not validated as a K9 contract.

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 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-19T15:23:33.539627Z 04d0c32 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 19, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

We couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting @coderabbitai full review.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 9830b440-3456-43b7-a723-43836f002a00
📥 Commits

Reviewing files that changed from the base of the PR and between e926751 and a8b630a.

📒 Files selected for processing: 1
  • tools/js-runtimes/Cargo.toml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
🔇 Additional comments: 1
tools/js-runtimes/Cargo.toml: 1

24-28: LGTM!

📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the JavaScript runtimes package configuration to define it as a standalone workspace.

The tools/js-runtimes/Cargo.toml manifest now includes comments about its workspace-root role and an empty [workspace] table.

Changes: Workspace boundary

Layer / File(s) Summary
Declare workspace root
tools/js-runtimes/Cargo.toml
The manifest adds comments about the package’s workspace-root role and an empty [workspace] table.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to a8b63

The crate now owns its Cargo workspace boundary, avoiding resolution through the caller’s workspace for the nested install path. The command was not run in the inspected environment, but the repository configuration matches the intended path and no merge blocker is evident.

### Architecture Summary

Architecture risk: 🔵 Low · up to a8b63

The change affects 1 system.

Changed systems: tools

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — tools (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in tools/js-runtimes/Cargo.toml: Adds comments describing the package’s workspace-root role and a [workspace] table.
Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely summarises the main change: making the js-runtimes crate its own Cargo workspace root.
Description check Passed The description directly explains the Cargo workspace failure, the applied fix, and the verification results. It is relevant to the changeset.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

CI annotation context is incomplete: annotation collection unavailable or limited

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

@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Add Carrot credits or activate Agent usage billing to use Autofix

hyperpolymath added a commit to hyperpolymath/echidna that referenced this pull request Oct 19, 2026
## Summary

GitHub now enforces the actions lockfile for reusable-workflow callers.
This repo's `actions.lock` had no record for `hyperpolymath/standards`,
so every standards caller failed at startup with "invalid lockfile pin".
The local gates pass on the broken main, so they cannot see this failure
mode. CI on this PR is the proof.

This is the same repair as hyperpolymath/proof-burrower#116, where every
reusable caller went green, and hyperpolymath/echidnabot#185.

## Changes

- Re-pins six standards reusables from `571cc734` to
`75bd5994470661a099df562d6d5ad2fe744dbd66`: governance, hypatia-scan,
mirror, scorecard, secret-scanner, spark-theatre-gate.
- Regenerates `.github/workflows/actions.lock` with the estate repair
chain. The lock is not hand-edited. The chain is `relock-sha-keys` →
`complete-job-refs` → `close-lock` → `prune-stale`, and
`complete-job-refs` includes the case fix from
hyperpolymath/standards#1294.
- The standards record now carries the 13 nested `uses:` its reusables
reach.

### Known open: two job-level refs without leaf records

These two refs were already dangling on main. The lock now lists them
under their workflows, but `close-lock` could not write their records:

- `slsa-framework/slsa-github-generator@f7dd8c54…` (v2.1.0), used by
`generator-generic-ossf-slsa3-publish.yml`;
- `hyperpolymath/panic-attack@b689a74d…`, used by `security-scan.yml`.

`close-lock` needs GitHub API reads of each repository for the numeric
owner and repo IDs and the nested refs' commits. This session has
git-only access to them, and I did not invent records. Expect those two
workflows to keep failing until someone with API access closes them.
With `gh` authenticated, run `GH_BIN=gh bash scripts/close-lock.sh` from
the repo root using standards' scripts, then `prune-stale.sh`. That is a
mechanical follow-up commit on this branch.

The "JS runtimes" job inside the governance reusable also stays red
until hyperpolymath/standards#1296 merges and the pin moves past it.
That job fails on a nested Cargo workspace, a separate bug.

## RSR Quality Checklist

### Required

- [x] Tests pass: CI-only change, no code touched
- [x] Code is formatted: n/a
- [x] Linter is clean: lock gates below
- [x] No banned language patterns
- [x] No `unsafe` blocks without `// SAFETY:` comments
- [x] No banned functions
- [x] SPDX license headers present on all new/modified source files:
none added; existing headers untouched
- [x] No secrets, credentials, or `.env` files included

## Testing

- `check-lock-sync.sh .github/workflows`: in sync.
- `check-actions-lock-gate.sh` with `update-actions-lock.sh
--verify-local`: "Immutable direct and transitive lockfile coverage
verified."
- `close-lock.sh`: rc 3, for the two refs above only.

---
_Generated by [Claude
Code](https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 19, 2026 15:30
@hyperpolymath
hyperpolymath merged commit a85aa8e into main Oct 19, 2026
65 of 68 checks passed
@hyperpolymath
hyperpolymath deleted the claude/new-session-th4e9w-jsr-workspace branch October 19, 2026 16:06
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.

2 participants