Skip to content

feat: gate the committed config reference against drift - #52

Merged
N4M3Z merged 10 commits into
mainfrom
change/herdr-refgate
Sep 1, 2026
Merged

feat: gate the committed config reference against drift#52
N4M3Z merged 10 commits into
mainfrom
change/herdr-refgate

Conversation

@N4M3Z

@N4M3Z N4M3Z commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Add the committed config reference and its drift gate. Task 2.5 of herdr-setup-ux.

  • docs/config-reference.json: the compiler-backed reference, generated by the binary.
  • tests/config_reference.rs: compares the committed copy against rune config reference
    output, so a config-struct change without a regenerated reference fails the suite.
    No workflow edits: the gate rides the existing test job.
  • rune config reference prints through the shared reference_document().
  • Validation: fmt, clippy -D warnings, and the full suite (25 suites) pass.
  • Stacked on feat: add the setup wizard #50 as a sibling of docs: propose the discovery, distribution, and plugin changes #51.

Release Notes

  • feat: the committed config reference fails CI when it drifts from the binary

Note

Add committed docs/config-reference.json and drift guard test

  • Adds a committed pretty-printed JSON reference for config keys and defaults in config-reference.json, with a test in config_reference.rs asserting rune config reference output matches the committed file exactly.
  • Rewrites rune setup into a plan/apply/verify flow supporting --plan (print plan only), --yes (apply detected defaults), and interactive confirmation. Setup now installs shell completions and agent skills per detected providers and writes a versioned SetupRecord to user config on success.
  • Adds rune update --check subcommand that queries the GitHub releases API and signals update availability via exit code.
  • Reworks rune skill install to target all enabled providers' skill directories, preserving user-modified files by comparing against a version-stripped rune-owned shape.
  • Behavioral Change: rune setup requires explicit --plan or --yes for non-interactive use; rune config get on unknown keys no longer lists alternatives; Config schema gains a setup section that denies unknown fields in ontology.rs.

Macroscope summarized ed51f9c.

Claude Fable 5 (claude-fable-5) and others added 4 commits August 29, 2026 01:42
rune skill install writes the agent skill into every enabled provider
tree and keeps user-modified files. rune update --check compares the
binary against the latest release and prints the package-manager
command. The update command never replaces its own binary.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
The release check times out after ten seconds and its repair hint
diagnoses the feed. Skill installs treat only version-line differences
as rune-owned (council review).

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
rune setup builds one frozen plan, prints every write, applies after
one approval or --yes, verifies config, providers, completion, and the
skill across every enabled harness, and writes the versioned setup
record only after every check passes. --plan --json performs no
writes. Task 3.4 of herdr-setup-ux is complete.

Co-Authored-By: Codex Gpt 5.6 Sol (gpt-5.6-sol) <gpt-5.6-sol@codex.noreply.nexus.local>
Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
docs/config-reference.json carries the compiler-backed reference and a
test compares it against the binary output, so a config-struct change
without a regenerated reference fails the suite. Task 2.5 of
herdr-setup-ux is complete.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • review:coderabbit

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 899e27da-9ec5-4103-ba0c-f3ab86a88dae

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

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

@github-actions github-actions Bot added size:large auto: changed-lines bucket area:docs auto: documentation and markdown labels Aug 29, 2026
@N4M3Z

N4M3Z commented Aug 29, 2026

Copy link
Copy Markdown
Contributor Author

@cursor review

@cursor

cursor Bot commented Aug 29, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@runewright runewright Bot added the issue:cursor Review provider requires intervention label Aug 29, 2026
@N4M3Z N4M3Z added the review:runeseer Summons the adjudicating correctness lane label Aug 29, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 29, 2026

Copy link
Copy Markdown

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR combines a substantial setup workflow with provider gating, multiple filesystem writes and removals, changed skill-install behavior, and a new network-backed update command. The committed config reference and tests are low-risk, but the overall runtime and side-effect surface is broad.

Notes:

  • Macroscope's correctness review did not run, so approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 29, 2026
@runeseer

runeseer Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Runeseer review — clean

Looks good. The extracted reference_document preserves the old reference behavior exactly, and the drift test is hermetic and deterministic: both defaults sources are compile-time embedded, entries are sorted by key, and serde_json runs without preserve_order, so map ordering is stable across runs.

  • The committed reference is generated under the default full feature set; --all-features adds no config fields, so the CI build and release jobs agree.
  • No other reviewer reported a defect on this change.

No open findings · Reviewed 7ea988e8 · review run · $0.98 · 2m4s · 27 turns

@github-actions github-actions Bot removed the review:runeseer Summons the adjudicating correctness lane label Aug 29, 2026

@runeseer runeseer Bot 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.

Earned approval: review/correctness returned a clean verdict for 7ea988e. Dismissed automatically on any new push.

@runewright

runewright Bot commented Aug 30, 2026

Copy link
Copy Markdown

Awaiting the owner's review: this pull request cleared every lane 34h ago. The merge waits only on @N4M3Z.

@runewright

runewright Bot commented Aug 31, 2026

Copy link
Copy Markdown

Awaiting the owner's review: this pull request cleared every lane 26h ago. The merge waits only on @N4M3Z.

@runewright

runewright Bot commented Sep 1, 2026

Copy link
Copy Markdown

Awaiting the owner's review: this pull request cleared every lane 22h ago. The merge waits only on @N4M3Z.

Claude Fable 5 (claude-fable-5) and others added 2 commits September 1, 2026 23:50
Carry the setup-ux rename and the graph export from main down the stack. No source change beyond the merge.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01Fds3tf5rS1Ep47q5DGhsr3
Carry the setup-ux rename and the graph export from main down the stack. No source change beyond the merge.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01Fds3tf5rS1Ep47q5DGhsr3
@github-actions github-actions Bot added size:xlarge auto: changed-lines bucket and removed size:large auto: changed-lines bucket labels Sep 1, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 1, 2026 21:51

Dismissing prior approval to re-evaluate 584678d

@N4M3Z
N4M3Z changed the base branch from change/herdr-wizard to change/herdr-skill September 1, 2026 21:51
@github-actions github-actions Bot added size:large auto: changed-lines bucket and removed size:xlarge auto: changed-lines bucket labels Sep 1, 2026
@N4M3Z N4M3Z added the review:runeseer Summons the adjudicating correctness lane label Sep 1, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 1, 2026
@github-actions github-actions Bot removed the review:runeseer Summons the adjudicating correctness lane label Sep 1, 2026
Setup wrote the provider toggles to the source config but planned the agent skill from the home config, so a provider enabled in the same run got no skill and a disabled one still did. Pass the planned selection into the skill plan as an override.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01Fds3tf5rS1Ep47q5DGhsr3
@N4M3Z
N4M3Z changed the base branch from change/herdr-skill to main September 1, 2026 22:33
@N4M3Z
N4M3Z dismissed macroscopeapp[bot]’s stale review September 1, 2026 22:33

The base branch was changed.

@github-actions github-actions Bot added size:xlarge auto: changed-lines bucket and removed size:large auto: changed-lines bucket labels Sep 1, 2026
Claude Fable 5 (claude-fable-5) and others added 2 commits September 2, 2026 00:45
Main now carries the theme system and the switchboard. The user config keeps both the setup record and the theme fields, and the CLI declares both the theme and update_check modules.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01Fds3tf5rS1Ep47q5DGhsr3
Carry the main merge (theme fields beside the setup record) down the stack, and regenerate docs/config-reference.json so the committed reference matches the binary again.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
Claude-Session: https://claude.ai/code/session_01Fds3tf5rS1Ep47q5DGhsr3
@N4M3Z
N4M3Z merged commit b38f4b5 into main Sep 1, 2026
13 checks passed
@N4M3Z
N4M3Z deleted the change/herdr-refgate branch September 1, 2026 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs auto: documentation and markdown issue:cursor Review provider requires intervention size:xlarge auto: changed-lines bucket

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant