Skip to content

Next - #69

Merged
codecaaron merged 192 commits into
mainfrom
next
May 11, 2026
Merged

Next#69
codecaaron merged 192 commits into
mainfrom
next

Conversation

@codecaaron

Copy link
Copy Markdown
Owner

No description provided.

codecaaron and others added 19 commits March 20, 2026 16:24
- Remove RFC-static-extraction.md (superseded by OpenSpec exploration)
- Remove packages/core/ANIMUS_ARCHITECTURE.md (superseded by specs)
- Remove packages/_docs/lib/animus-runtime.tsx (failed POC)
- Clean packages/_docs/pages/_app.tsx (remove dead runtime import)
- Gut packages/core/CLAUDE.md (1250 → 37 lines, now points to specs)
- Gut packages/theming/CLAUDE.md (334 → 23 lines, lean reference)
- Add canonical specs: builder-chain, extension-system, prop-system
- Add OpenSpec config and core-builder-spec change artifacts

Net: -1,634 lines of AI-generated bloat replaced with 575 lines
of structured, validated specifications.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@netlify

netlify Bot commented Mar 25, 2026

Copy link
Copy Markdown

Deploy Preview for animus-ui failed.

Name Link
🔨 Latest commit 9bedb03
🔍 Latest deploy log https://app.netlify.com/projects/animus-ui/deploys/6a01f15f7bc14a0008b64f1b

@netlify

netlify Bot commented Mar 25, 2026

Copy link
Copy Markdown

Deploy Preview for animus-canary ready!

Name Link
🔨 Latest commit 9a55af6
🔍 Latest deploy log https://app.netlify.com/projects/animus-canary/deploys/69e80e3e1b98df00083c6832
😎 Deploy Preview https://deploy-preview-69--animus-canary.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

codecaaron and others added 29 commits April 26, 2026 21:51
Root cause of the silent corruption surfaced by --apply --all on the next
branch: getExportsOfFile walked VariableStatement declarations but only
handled `ts.isIdentifier(d.name)`. ObjectBindingPattern and
ArrayBindingPattern fell through, so a destructured export like

    export const { system: ds } = createSystem();

was registered as zero exports. D1 (reconcile-after-knip) then judged
`export { ds } from './system'` re-exports as "all-stale" and deleted the
entire statement, breaking every cross-package consumer of `ds`.

Fix: extract a `collectBindingNames` helper that walks Identifier,
ObjectBindingPattern, and ArrayBindingPattern recursively (with the
ArrayBindingPattern hole case handled). Call it from the VariableStatement
branch in getExportsOfFile.

Three new tests in reconcile-after-knip.test.ts:
- object-binding-pattern collects every renamed local
- array-binding-pattern skips holes, collects named slots
- end-to-end: barrel re-exporting from a destructured-binding source is
  preserved (the regression scenario)

Also: the JSDoc on packages/test-ds/src/system.ts said "NOT exported from
index.ts — consumers use their own system config." That was wrong: index.ts
does re-export `ds` and showcase + next-app fixtures rely on it. Replaced
with an accurate description that won't mislead future readers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
68/68 tasks complete. Spec deltas promoted to openspec/specs/code-hygiene/
spec.md (8 requirements added, 1 modified). All implementation verified
end-to-end on the next branch:

- Receipts substrate (scripts/hygiene/_receipts.ts +
  _emit-biome-receipts.ts + _emit-knip-receipts.ts) emitting v1-schema
  JSONL audit trail
- Presenter (scripts/hygiene/presenter.ts) deriving the convergence
  verdict from receipts; orchestrator owns exit code
- Cap-hit verdict cutover: clean trailing iterations correctly
  classified as convergence (verified on real --apply --all run)
- Layer C category-drift canary closing the session-89 silent-no-op
  regression class
- Dist-staleness precondition (require_dist_fresh_for_workspaces);
  fix-mode ERROR, scan-mode WARN
- --apply --all confirmation gate (TTY prompt + non-TTY
  --yes-apply-all flag), end-to-end TTY-verified
- Help-text refresh with env-var-aware defaults
- Reconciler span-preserving rewrite (consecutive-stale-run range
  computation; preserves JSDoc, type modifiers, suppression directives
  on retained elements)
- Tier 3 fixtures: function-overload-with-JSDoc, namespace deletion,
  CJS export = re-export, destructured-binding-export
- D1 binding-pattern fix in getExportsOfFile (the bug that surfaced
  late; now locked in by 3 tests)
- biome.json ignores .hygiene/; .knip.json ignores hygiene wrapper TS
  files; CLAUDE.md § Code Hygiene Workflow rewritten

The receipt-based loop exit (currently fingerprint-based) is the
acknowledged follow-up; deferred as architectural improvement now that
the binding-pattern bug is fixed and convergence is reliable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecaaron
codecaaron merged commit 6eb9d5f into main May 11, 2026
12 of 16 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.

1 participant