Skip to content

[updater] F: Confine SDK contracts to clones#114

Merged
ppenna merged 1 commit into
mainfrom
fix/sdk-contract-confinement
Jul 13, 2026
Merged

[updater] F: Confine SDK contracts to clones#114
ppenna merged 1 commit into
mainfrom
fix/sdk-contract-confinement

Conversation

@ppenna

@ppenna ppenna commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Place the verified sdk-release.json inside each credential-free consumer clone's Git metadata before invoking update-nanvix.

The first strict cascade correctly failed because zutils rejects local contract paths outside the target root. .git/sdk-release.json satisfies confinement without introducing an untracked worktree path or expanding the publication allowlist.

Validation

  • 14 workflow foundation tests
  • ShellCheck and shfmt
  • Actionlint v1.7.11

Copy the independently verified release contract into each credential-free clone before invoking zutils, preserving zutils path confinement without adding worktree changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3a354ddf-0f65-44b2-a2cb-81d4662a3587
Copilot AI review requested due to automatic review settings July 13, 2026 02:01
@ppenna ppenna merged commit 0a72683 into main Jul 13, 2026
3 checks passed
@ppenna ppenna deleted the fix/sdk-contract-confinement branch July 13, 2026 02:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the Nanvix “update-nanvix” workflow to ensure the verified SDK contract (sdk-release.json) is located inside each consumer clone’s root (via its .git/ metadata directory) before invoking update-nanvix, satisfying zutils’ contract path confinement requirements.

Changes:

  • Copy sdk-release.json into each consumer clone at $clone/.git/sdk-release.json prior to mutation.
  • Switch UPDATE_TARGET from an absolute workspace path to the confined relative path .git/sdk-release.json.
  • Add foundation test assertions to lock in the confinement behavior in the workflow.
Show a summary per file
File Description
.github/workflows/nanvix-update-nanvix.yml Copies the SDK contract into each clone’s .git/ and uses it as the update target to satisfy confinement.
tests/run-tests.sh Adds checks ensuring the workflow keeps SDK contract paths confined to each consumer clone.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Low

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