ArkGate
4.8.20

Published

Daily accumulate.

ArkGate 4.8.20 is published. Current is 4.8.25. Accumulates #301, #300, #303, #299, #302, #293, #298, and #304. No config migration, but one behavior change can turn a green repo red. That is Contener · Guiar · Ordenar.

Upgrade

Install 4.8.20

npm install -D arkgate@4.8.20
npx arkgate upgrade --json
npx arkgate-check --doctor

Current is 4.8.25 on npm latest. Install that unless you need this patch pinned. No schema bump. Read the coverage.symbol note below before you upgrade.

What shipped

A named symbol must exist in code. Walls get sharper.

Behavior change: coverage.symbol (#301)

coverage.symbol now needs a declaration of that name in a non-test file. Imports and test calls no longer count, so some repos that are green today will turn red. Each covered row names its witness as symbolEvidenceFile. Discard counters (depthLimited, the per-file byte cap, and the other reasons) now print on green doctor and --rules-inventory output too.

Anchored starred sliceFolders (#300)

sliceFolders accepts a starred prefix such as lib/features/*/*, anchored like sharedRoots. A star never binds a filename. Bare names no longer treat a filename as the slice child; bare names on real directories behave exactly as before.

Shared roots are a sink, if you opt in (#303)

A peerIsolation rule may set sharedImportsSlice: "deny". A shared root then may not import a slice. The default stays off, so current walls stay green. Doctor lists shared-root → slice bridges either way.

Reshape pilot stays governed (#299)

Reshape pilot destinations stay in the source file’s layer and slice. A proposal that would leave both is withheld instead of pointing at an ungoverned folder.

Honest doctor on cohesion residual (#302)

Doctor no longer calls the tree finished or elegant while a physical-cohesion finding is still unsuppressed. The gate verdict is unchanged.

pnpm Age recovery and upkeep (#293, #298, #304)

Age-gated start --apply install failures no longer replay the same doomed pnpm add. Dev dependency vitest moved to 4.1.11 for a mocker advisory, and Dependabot ignores vitest 5 until Node 22.12 is the floor.

Honesty

What stayed the same.

Import rules still hold at write and at merge. Required CI is still the hard line. Cursor, Grok, and Claude can block listed writes when hooks are trusted.

Maintainer source: CHANGELOG.md ↗