Skip to content

arkgate 4.1.0

Latest

Choose a tag to compare

@pedroknigge pedroknigge released this 25 Jul 04:19
v4.1.0
2bb51ab

ArkGate 4.1.0

  • Status: prepared (not published to npm yet)
  • npm (when published): arkgate@4.1.0
  • Git tag (when published): v4.1.0

Minor over 4.0.1. Single ship train: field product phases + field-gap closure (S0–S7) +
maintainer CI PR-slim / full-matrix speed work.

Field product phases from Next monorepo dogfood + objective product review, re-verified on seven
real consumer repos:

Next API shell classification, anti false-green doctor packaging, monorepo config walk-up with
write-root split, SPA/lib classification vacuum fixes, ESLint path-alias parity, structure-sensor
false-positive tuning, ArkRules merge-plane honesty, type-edge placement debt, rules-inventory
UI noise reduction, migrate-contract retrofit, and config write containment.

No required config migration. Does not weaken write gate or CI value edges. Does not close
Z09 / RB-11 field claims.

What changed

Area 4.1.0 result
Next API shell (P0-A) app/api/** / pages/api/**ApplicationOrchestration by default (overlay + ui-surface + monorepo); UI routes stay Presentation
Product honesty (P0-B) Doctor productHonesty + human section + HTML card — unfinished when design-weak / weak coverage / dirty freeze / dual-truth / residual pilots / blocking debt / ADAPT with debt
ESLint aliases (P0-C) tsconfig paths / baseUrl (@/*) resolved in editor plugin; residual envelope documented; dual-driver parity tests
Structure sensors (P1-L) Prefer false negatives on weak DDD evidence (readonly props, bare constructors); true positives retained
Merge planes (P1-M) rulesUnderContract.mergePlanes — which plane fails merge; dual-plane stamp; no architecture score
Type edges (P1-type) Type-only denied edges on violations list with failsStrict: false + warning severity (non-blocking); value edges still block; peerIsolation type-only stays hard; SharedTypes guidance
Inventory noise (P2-N) Quieter UI/Next constants; still finds spaghetti seeds in controllers/domain
Monorepo walk-up (S2) Nested package cwd finds monorepo config; mutative writes stay under write root unless --follow-config-root
SPA / vacuum (S3) SPA preset + adopt/start reduce Application-empty and lib-as-Presentation lies; Domain specificity for nested domain paths
migrate-contract Retrofit Next API shell patterns into existing configs without full re-init
Force-gates / digest (S4) Force install preserves content-identity digests for managed upgrade honesty
Config write containment Refuse mutative --config outside project root
Field dogfood Offline gap assertions under scripts/field-dogfood/; 7-repo re-lab 15/15 critical assertions
Coverage floors (internal) Statement/line 80→79.5, branch 82.5→82.0, function 85→76.5 (measured after field surfaces)
CI speed (maintainer) PR slim vs full matrix (ci-profile); mutation + complete packed matrices remain on full-matrix / main / publish

What did not change

  • Write gate / CI fail-closed semantics for value layer edges
  • ArkRules opt-in semantics (no arkRules → same inter-layer verdict as 4.0.x)
  • Host hardness claims
  • Z09 / RB-11 field claims (still open — not closed by this release)
  • Y07 / Y09 ROADMAP status (still parked)
  • Package budget measured candidate remains the 4.0.0 clean candidate unless pack exceeds ceilings
  • Plan B reshape remains judgment / never mechanical-safe by default

Field honesty (7-repo re-verify)

Re-verified against mother CLI 4.1.0 (not npm latest 4.0.1) on a hostile brownfield cohort:
Next App Router monorepos, Vite SPA, factory-bag kernels, and thin TS surfaces (seven private
consumer clones — host identities not named in the shipped tree).

Critical gap assertions (type-only control, monorepo walk-up, finished-with-debt ban, API→Application,
Domain specificity, dual-truth pin, migrate-contract retrofit, config containment, write-root split):
15/15 pass. Residual unfinished states (dual-truth pin, ADAPT without config, residual pilots)
are honest product states, not false greens.

Upgrade

Prepared only — npm latest remains 4.0.1 until this release is published.

# After publish:
npm install -D arkgate@4.1.0
# or: npm install -D arkgate@latest
npx arkgate-check --install-agent-gates --force
npx arkgate-check --doctor --json
# prefer project-local upgrade:
npx arkgate upgrade

Until publish, stay on arkgate@4.0.1 for registry installs. Dogfood this branch from the
git worktree (npm run build + local bin/).

No config migration. Optional after upgrade:

  • Re-run ark start / --init on Next trees so API shell patterns land if you regenerate from
    presets; existing hand-tuned configs keep working.
  • On brownfield Next with an old config:
    npx arkgate-check --migrate-contract --write
    to classify app/api/** as Application without full re-init.
  • Prefer project-local npx arkgate / pnpm exec arkgate over a global Homebrew/npm ark.

Maintainer publication checklist

  1. CI green on the release SHA
  2. npm run release:npm -- --dry
  3. Signed tag v4.1.0 + GitHub Release from this file
  4. gh workflow run publish-npm.yml -f tag=v4.1.0 -f dry_run=false
  5. Verify: npm view arkgate@4.1.0 version and npm view arkgate dist-tags.latest4.1.0
  6. Flip CONTRIBUTING / README / this status to published
  7. Optional: mcp-publisher publish server.json (requires valid registry JWT)

Security notes (honest)

No dependency CVE bumps unique to this prepare beyond what already landed on main (e.g. postcss
pin in the 4.0.1 line). Architecture gate semantics for value edges are unchanged; type-only edges
are reclassified as placement debt on the violations list (failsStrict: false, diagnostic severity
warning — not merge-blocking). peerIsolation type-only edges remain hard. Config write containment
fails closed on paths outside --root. Intentional product policy — not a silent weaken of
runtime coupling checks.