ArkGate
4.8.27

Current

The public door, the repair, the clock.

ArkGate 4.8.27 is on npm latest. Patch over 4.8.26 (#360): first-principles enforcement, public layer entrypoints, and remediation blueprints (P0–P5). No required config migration: a config that loads in 4.8.26 still loads. That is Contener · Guiar · Ordenar.

Upgrade

Install 4.8.27

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

No required config migration. No schema bump. Does not close K01 or Z09. This mother config still does not turn ArkOrder on.

What shipped

Name the public door. Show the repair. Keep the write gate on time.

Public entrypoints (#360)

layers[].entrypoints is a public surface contract. ark-check, arkgate/eslint, AICodeGate, and ark-mcp enforce it at the same findDeniedEdgeDecision waist, with policy-delta classification and config warnings.

The agent sees the door first

ark_place and ark_prepare_write project entrypoints and targetEntrypoints, so the agent knows which public barrel or entrypoint to import before it writes.

A blueprint on rejection

A rejection can carry a deterministic TypeScript remediation blueprint on judgmentBrief.blueprint. That covers LAYER_IMPORT_VIOLATION (including entrypoints), FORBIDDEN_GLOBAL, CAPABILITY_VIOLATION, ARKORDER_*, and ARKRUN_*. The blueprint is a repair plan. It does not apply the change.

ark init --baseline

ark init --baseline [path] freezes existing violations into .ark-baseline.json via --write-baseline, and wires --baseline into --strict-merge during brownfield onboarding.

A 2-hop cycle, when policy is strict

When cyclePolicy is "strict", single-file Write / Edit hooks and ark_prepare_write detect an immediate 2-hop value cycle (A -> B -> A).

1500ms on warm ApplyPatch

Warm resident ApplyPatch / apply_patch evaluation uses a 1500ms window. That write-gate timeout ships with an incremental ResolverIngestCache.

Also fixed

Sensors skip comments. Runtime bundles shrink.

  • arkRuleSensors masks comments and strings before it evaluates aggregate-guards-invariants and immutable-value-object method bodies, and it recognizes a structural if (...) throw guard.
  • treeshake: true in tsup.config.ts and packages/runtime/tsup.config.ts shrinks the compiled runtime bundles.

Honesty

What stayed the same.

No schemaVersion bump. No required config migration. Does not close K01 or Z09. Import rules still hold at write and at merge. Required CI is still the hard line. ArkOrder stays opt-in. This mother config still does not turn ArkOrder on.

Maintainer source: CHANGELOG.md ↗ · #360 ↗