fix: review cleanups — detector skips, upstream's fence, update's backup notice, one subtree helper, CHANGELOG catch-up - #224
Merged
Conversation
…kup notice, one subtree helper, CHANGELOG catch-up - Detection: target/, vendor/, venv/ and .venv/ are skipped only where they are that ecosystem's tree (a sibling Cargo.toml/pom.xml/build.sbt or go.mod/composer.json/Gemfile, or a pyvenv.cfg inside), so a route at app/target/route.ts is detected as backend again. __pycache__/.yarn stay always-skipped; a marked tree still costs zero walk budget. - Capability index: the frontmatter fence is upstream's own rule, ported from its validator (starts with ---, runs to the first line starting with ---, trimmed); a differential test runs every fence shape through the validator's function. CRLF is the one named, lenient difference. - update --force: the backup notice prints with the spinner stopped, and an abort repeats only the part-way warning and the pointer on stderr (the .gitignore hint is said once). - capabilitySubtree (lib/layout.ts) replaces six copies of the role -> subtree ternary. - Three raw invisible characters in tests become escapes; a new source-hygiene test keeps src/ and tests/ free of them. - CHANGELOG: PHARN-01..18 backfilled, merged with the later entries into one net-since-0.5.0 entry per change. CLAUDE.md and docs catch up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0199owRmYfskqYQVQrVP679o
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Plan F, the last of the review follow-ups (
.dev/features/review-cleanups/):F22 — detection.
target/,vendor/,venv/and.venv/are now skipped only where they belong to another ecosystem:target/beside aCargo.toml,pom.xmlorbuild.sbt;vendor/beside ago.mod,composer.jsonorGemfile;venv/or.venv/holding apyvenv.cfg.A Next.js route at
app/target/route.tsdetects asbackendagain (the base gave[ssr]). A marked tree still costs zero walk budget.F23 — frontmatter fence. The fence now follows upstream's own rule, ported from its validator: the file starts with
---and the block runs to the first line that starts with---. A differential test runs every fence shape through the validator's own function.F21 —
update --forcebackup notice. The notice now prints after the spinner stops. Before, it was glued to the spinner frame, and in a narrow terminal the spinner's stop erased it. An abort now repeats only the part-way warning and the backup pointer on stderr.capabilitySubtreeinlib/layout.tsreplaces six copies of the role → subtree ternary. No behavior change.Raw invisible characters. Three in the tests are now escapes. A new
tests/source-hygiene.test.tskeepssrc/andtests/free of them.F26 — CHANGELOG. PHARN-01..18 are backfilled. Each is merged with the later entries into one net-since-0.5.0 entry per change. CLAUDE.md and the docs are updated to match.
Type of change
feat— new stack option, wizard step, or command capabilityfix— bug fixdocs— docs-only changechore/refactor— tooling or internal restructure, no behavior changeArea(s) touched
lib/detect-archetype | lib/capability-index | commands/update | lib/layout (+ 5 callers) | tests | docs | CHANGELOG | CLAUDE.md
Checklist
.js-extension import convention.tests/*.test.ts. On the base8b53ba9, 16 of the new cases fail, each for the reason the plan names; the guard cases pass there too.docs/page (docs/commands/init.md,docs/troubleshooting.md).Quality gates
npm run checkpasses locally (1649 tests). I ran it as root with the DAC-override capabilities dropped (CI-equivalent).npm run buildsucceeds.npm run test:coveragepasses (97.63 / 93.04 / 98.33 / 98.46).Notes for the reviewer
[Unreleased]section is restructured, not appended to. Entries added by fix(init): a re-run init keeps what update would keep, and re-checks the config under its lock #216, fix(proxy): the proxy notice follows Node's measured rules; tests stop reading the host's proxy env #221, fix(hooks): the HOOKS check reads what Claude Code reads and prints what can be pasted back #222 and fix(init): a re-install backs up only what update would keep; refusals come before the backup #223 are now merged with the PHARN commits they extend. Two entries that described only unreleased intermediate states were dropped. Every other fact was kept.readField.new Functionon theparseFrontmatterbody taken from this repo's.dev/floor/validate.mjs, not on anything fetched.🤖 Generated with Claude Code
https://claude.ai/code/session_0199owRmYfskqYQVQrVP679o
Generated by Claude Code