Skip to content

fix: review cleanups — detector skips, upstream's fence, update's backup notice, one subtree helper, CHANGELOG catch-up - #224

Merged
PrzemekGalarowicz merged 1 commit into
mainfrom
claude/optimistic-heisenberg-8rw8ke
Sep 25, 2026
Merged

PrzemekGalarowicz merged 1 commit into
mainfrom
claude/optimistic-heisenberg-8rw8ke

Conversation

@PrzemekGalarowicz

Copy link
Copy Markdown
Contributor

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 a Cargo.toml, pom.xml or build.sbt;
    • vendor/ beside a go.mod, composer.json or Gemfile;
    • venv/ or .venv/ holding a pyvenv.cfg.

    A Next.js route at app/target/route.ts detects as backend again (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 --force backup 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.

  • capabilitySubtree in lib/layout.ts replaces 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.ts keeps src/ and tests/ 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 capability
  • fix — bug fix
  • docs — docs-only change
  • chore / refactor — tooling or internal restructure, no behavior change

Area(s) touched

lib/detect-archetype | lib/capability-index | commands/update | lib/layout (+ 5 callers) | tests | docs | CHANGELOG | CLAUDE.md

Checklist

  • Read the existing file(s) before editing; followed the ESM .js-extension import convention.
  • Updated the matching tests/*.test.ts. On the base 8b53ba9, 16 of the new cases fail, each for the reason the plan names; the guard cases pass there too.
  • Updated the relevant docs/ page (docs/commands/init.md, docs/troubleshooting.md).
  • Preserved the security invariants. The fence change only widens the parser to upstream's rule. The enums, the field reader and the duplicate-key refusal are unchanged.

Quality gates

  • npm run check passes locally (1649 tests). I ran it as root with the DAC-override capabilities dropped (CI-equivalent).
  • npm run build succeeds.
  • npm run test:coverage passes (97.63 / 93.04 / 98.33 / 98.46).

Notes for the reviewer

🤖 Generated with Claude Code

https://claude.ai/code/session_0199owRmYfskqYQVQrVP679o


Generated by Claude Code

…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
@coderabbitai

coderabbitai Bot commented Sep 25, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

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

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: d93c8cf8-6277-4c55-9565-89692d0535aa


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.

@PrzemekGalarowicz
PrzemekGalarowicz merged commit 9d2d574 into main Sep 25, 2026
14 checks passed
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