Skip to content

docs: new installs default to verified releases with pharn-cli 0.15.0 (7.1.4) - #404

Merged
PrzemekGalarowicz merged 4 commits into
mainfrom
docs/cli-0.15-release-default
Oct 26, 2026
Merged

PrzemekGalarowicz merged 4 commits into
mainfrom
docs/cli-0.15-release-default

Conversation

@PrzemekGalarowicz

Copy link
Copy Markdown
Member

The docs now match @pharn-dev/pharn 0.15.0 (pharn-dev/pharn-cli#326): a new install takes the newest verified release by default. main is still what installs on the main channel receive, but it is no longer the default.

Checked against the published CLI and pharn-cli's source (v0.15.0 tag)

  • npm view @pharn-dev/pharn version → 0.15.0. init --help: --ref is "latest" (the default) or "main" (for contributors). update --help: without --ref, update follows the recorded channel (main when none is recorded).
  • src/lib/pharn-config.ts: only the literal "ref": "latest" survives a load; any other value, "main" included, is dropped, so the install follows main. 0.14.1 only ever wrote ref: 'latest'. So "the main channel is any install with no recorded ref" holds for old installs too.
  • src/lib/release.ts: two unauthenticated GETs to api.github.com; any failure refuses (exit 1). The CLI reads no GitHub token variable (pharn --help).
  • src/lib/repo.ts: on main, a failed lookup still installs and records commit: null; a release always records its tag's commit. docs/limitations.md now says so (its old "records the exact installed commit" didn't cover that).
  • MIN_CLI 0.14.0 refuses every CLI older than 0.14.0, and 0.14.x already accepts --ref latest. So "an older installer takes main unless given --ref latest" covers every CLI that can still install.
  • Repo side: release.yml runs on push to main and waits for floor, check, Analyze (javascript-typescript) and Socket Security: Project Report. Tags v7.1.2 and v7.1.3 exist, so the old "no GitHub releases or git tags yet" bullet was already false.

What changed

  • README: install commands drop --ref latest. The channel paragraph says the default is the newest release (recorded as "ref": "latest"), lists when no release resolves (none published, api.github.com unreachable, or its 60-requests-an-hour unauthenticated limit used up, which status --strict on shared CI can hit), and says --ref main is the contributor channel. "Already installed?" adds npx @pharn-dev/pharn@latest update --ref latest. Badge → 7.1.4.
  • CONTRIBUTING ("Releases", "CHANGELOG entries") and CLAUDE.md (SKILLS_VERSION discipline, hard constraint 1): no longer say main is the default. They cite pharn/LIMITS.md §11 for who is on the main channel instead of restating it.
  • docs/limitations.md: the stale packaging bullet now describes both channels.
  • Apparatus (no bump of its own): pharn-dev-ship.md Step 2c and a comment in .dev/floor/check-changelog-entry.mjs.
  • SKILLS_VERSION 7.1.3 → 7.1.4 (patch), with a ## [7.1.4] CHANGELOG section, because pharn/LIMITS.md ships. This merge becomes release v7.1.4.

⚠️ pharn/LIMITS.md §11 is applied by a human and is not in this PR yet

LIMITS.md is a trusted doc, so the agent did not edit it. A maintainer applies the §11 edit with the patch script from the session (exact-string replacement, tested on copies) and commits it to this branch. Do not merge before that commit is here. Without it, the 7.1.4 CHANGELOG entry and the §11 citations in CLAUDE.md and CONTRIBUTING describe text the release doesn't contain.

Left unchanged

  • pharn/THREAT-MODEL.md §3 item 2 ("pharn-cli's --ref latest channel does not receive it"): still true.
  • .github/workflows/release.yml header comment: out of scope, and still true.
  • .dev/floor/check-skills-version-recorded.mjs:68: a historical "why it grew" note about the old trigger.
  • docs/capabilities/*.md (generated): "installs with npx @pharn-dev/pharn@latest init" is still true.
  • MIN_CLI stays 0.14.0: an older CLI still installs a working tree.

Gates

  • check:changelog-entry GREEN, check:surface-bump GREEN, prettier/markdownlint/eslint clean on the touched files.
  • Local check:reconcile in the working checkout is RED for a reason outside this PR: a leftover epoch from the merged release-workflow build (ci(release): publish a verified release once a SKILLS_VERSION bump's required checks pass on main #402) judges these files against that build's scope. The baseline was left alone. npm run check was run in a clean copy (no .git history, no pharn/.run) with the LIMITS script applied; the result is posted in a comment below.

🤖 Generated with Claude Code

PrzemekGalarowicz and others added 3 commits October 26, 2026 21:21
… (7.1.4)

@pharn-dev/pharn 0.15.0 (pharn-dev/pharn-cli#326) installs the newest
v<SKILLS_VERSION> release when init gets no --ref, records "ref": "latest",
and exits 1 naming --ref main when none resolves. main stays what the main
channel receives: an install recording no ref, --ref main, and an older
CLI's default. README, CONTRIBUTING, CLAUDE.md and docs/limitations.md no
longer call main the default; pharn-dev-ship Step 2c and a check-changelog-entry
comment get the same fix.

pharn/LIMITS.md section 11 is human-only and is applied in a separate
commit by a maintainer; SKILLS_VERSION 7.1.4 is the patch bump it needs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t cause (review)

Address review: the CHANGELOG 7.1.4 entry states the main channel as one
group (no recorded ref) and says update prints its notice on each run;
README, docs/limitations.md and the CHANGELOG name api.github.com's
unauthenticated limit as a cause of the exit 1; CLAUDE.md and CONTRIBUTING
cite pharn/LIMITS.md section 11 instead of restating who is on main; a
checker comment is rewrapped to the print width.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ails; older CLIs take main by default

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: de73e4a5-667f-47d8-8529-1f8b32626b77
  • 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.

…pharn-cli 0.15.0 (7.1.4)

Applied by the maintainer from the agent-drafted patch script (exact-string
replacement; LIMITS.md is human-only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

pharn

🛡️ pharn-ci · ✅ Pass

Tip

Pass · Diff coverage of this change is 100% against a threshold of 100%; 38 agent setup files found.

Verdict Diff coverage Test integrity Agent setup
✅ Pass 100% (threshold 100%) none (block) 38 files

🧪 Diff coverage

100% of changed lines covered (3/3, threshold 100%)

Changed files (1)
File Coverage Covered Uncovered lines
.dev/floor/check-changelog-entry.mjs 100% 3/3

🔍 Test integrity

No test-integrity findings (mode: block).

💬 Messages (1)

  • ℹ️ COVERAGE_PATHS_PARTIALLY_UNMATCHED 122 file paths in the coverage report are not tracked files in the repository; their coverage is not used.
    • Hint: Nothing to do if those files are generated or outside the repo; if changed files are missing from the table, check the coverage root.

🤖 Agent setup (38 files)

Agent setup: 38 files · claude-code

Agent setup files (38)
Path Kind
.claude/agents/pharn-review-lens.md claude-agent
.claude/commands/pharn-build.md claude-command
.claude/commands/pharn-dev-build.md claude-command
.claude/commands/pharn-dev-eval.md claude-command
.claude/commands/pharn-dev-grill.md claude-command
.claude/commands/pharn-dev-memory-promote.md claude-command
.claude/commands/pharn-dev-plan.md claude-command
.claude/commands/pharn-dev-regress.md claude-command
.claude/commands/pharn-dev-review.md claude-command
.claude/commands/pharn-dev-ship.md claude-command
.claude/commands/pharn-dev-verify.md claude-command
.claude/commands/pharn-grill.md claude-command
.claude/commands/pharn-loop-close.md claude-command
.claude/commands/pharn-loop-quick.md claude-command
.claude/commands/pharn-loop.md claude-command
.claude/commands/pharn-memory-promote.md claude-command
.claude/commands/pharn-plan.md claude-command
.claude/commands/pharn-regress.md claude-command
.claude/commands/pharn-review.md claude-command
.claude/commands/pharn-ship-close.md claude-command
.claude/commands/pharn-ship-quick.md claude-command
.claude/commands/pharn-ship-stages.md claude-command
.claude/commands/pharn-ship.md claude-command
.claude/commands/pharn-spec.md claude-command
.claude/commands/pharn-test.md claude-command
.claude/commands/pharn-verify.md claude-command
.claude/hooks/enforce-writes-scope.cjs claude-hook
.claude/hooks/enforce-writes-scope.test.cjs claude-hook
.claude/hooks/hook-wiring.test.cjs claude-hook
.claude/hooks/protect-trusted-paths.cjs claude-hook
.claude/hooks/protect-trusted-paths.test.cjs claude-hook
.claude/hooks/require-loop-record.cjs claude-hook
.claude/hooks/require-loop-record.test.cjs claude-hook
.claude/hooks/set-writes-scope.cjs claude-hook
.claude/hooks/set-writes-scope.test.cjs claude-hook
.claude/hooks/writes-scope-release.test.cjs claude-hook
.claude/settings.json claude-settings
CLAUDE.md claude-md

pharn-ci 0.2.0 · report schema v2 · coverage format lcov

@PrzemekGalarowicz
PrzemekGalarowicz merged commit 62526d8 into main Oct 26, 2026
8 checks passed
@PrzemekGalarowicz
PrzemekGalarowicz deleted the docs/cli-0.15-release-default branch October 26, 2026 20:46
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