Skip to content

v1.0.0: architecture2 rearchitecture + OSS release prep#24

Merged
ethanj merged 5 commits intoarchitecture2from
release/oss-prep
Apr 19, 2026
Merged

v1.0.0: architecture2 rearchitecture + OSS release prep#24
ethanj merged 5 commits intoarchitecture2from
release/oss-prep

Conversation

@ethanj
Copy link
Copy Markdown
Contributor

@ethanj ethanj commented Apr 19, 2026

Summary

Cuts over main to the Phase 1A–7 rearchitecture (composition root, scope contract, observability contract, config split, store interfaces, consumption seams, leaf-module config threading) plus the OSS-release-prep on top.

⚠️ Breaking change — /v1 API prefix

All application endpoints are now mounted under /v1 (e.g. POST /v1/memories/ingest, PUT /v1/agents/trust). The unversioned /health liveness probe is unchanged. Clients must prefix requests with /v1. Added pre-1.0 so the versioning namespace is in place before any external consumers depend on the HTTP surface.

What's in this PR

Rearchitecture (Phases 1A–7):

OSS release prep (this branch):

  • @atomicmemory/atomicmemory-engine@atomicmemory/atomicmemory-core (npm package rename)
  • "private": true removed from package.json; files field scopes tarball
  • release.yml publishes to public npm on tag push (NPM_TOKEN secret)
  • SuperMem codename scrubbed from source + tests
  • Private-research-repo URLs unlinked from public docs
  • README links to docs.atomicmemory.ai
  • /v1 API prefix on all routes (see breaking change above). Adds a mount-coverage test (src/app/__tests__/versioned-mount.test.ts) that asserts both route families resolve under /v1 and that bare paths 404.

Post-merge steps (manual)

  1. Tag v1.0.0 on main — triggers npm publish via release.yml
  2. Delete architecture2 branch
  3. Confirm docs site deploy at docs.atomicmemory.ai

Test plan

  • CI green on this PR
  • npm publish --dry-run succeeds locally
  • After merge: tag v1.0.0 → confirm GitHub Release + npm publish succeed

🤖 Generated with Claude Code

ethanj and others added 5 commits April 18, 2026 21:08
…ish wiring

Preparing atomicmemory-core for public release. All internal-codename
references ('SuperMem') removed from src/; private-repo URLs unlinked
from public-facing docs; package flipped to public + renamed to match
repo and SDK naming; npm publish step added to release workflow; tarball
scoped to runtime code only (test files excluded).

- package.json: drop 'private: true', rename to @atomicmemory/atomicmemory-core
  (from @atomicmemory/atomicmemory-engine — matches repo name and SDK's
  @atomicmemory/atomicmemory-sdk pattern). Add 'files' field excluding
  __tests__/, *.test.ts, and test-helpers; reduces tarball 250→119 files,
  1.5MB→812KB unpacked.
- src/: 8 files SuperMem → AtomicMemory rename (src/index.ts docstring,
  src/db/ppr.ts HippoRAG attribution, 6 test fixtures with 'SuperMem
  engine' fact strings). No behavior change; all 963 tests pass.
- docs/README.md:14, README.md:23, SECURITY.md:22, CLAUDE.md:26,
  docs/consuming-core.md:194: unlink private atomicmemory-research repo
  URL; keep the 'research lives separately' boundary wording.
- src/db/schema.sql, src/app/__tests__/composed-boot-parity.test.ts,
  src/app/runtime-container.ts: replace internal doc-path references
  (atomicmemory-research/docs/...) with self-contained explanations.
  These would have 404'd for public readers.
- CHANGELOG.md 'Initial extraction from atomicmemory-research prototype'
  left as historical attribution (factually accurate, doesn't link out).
- .github/workflows/release.yml: add 'Publish to npm' step with
  NODE_AUTH_TOKEN from NPM_TOKEN secret, set registry-url to
  registry.npmjs.org. Triggers on tag push (v*).

Verification:
- npx tsc --noEmit: clean
- npm test: 963/963 pass
- fallow --no-cache: 0 above threshold (maintainability 91.0)
- npm publish --dry-run: @atomicmemory/atomicmemory-core@1.0.0
- Git history secret scan: 0 matches for sk-*, AKIA*, ghp_*, xox*, password= patterns
- Remaining 'atomicmemory-research' references in repo: only CHANGELOG
  historical line

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex review surfaced three blockers for public v1.0.0:

1. Package not consumable as published. main/exports pointed at raw src/*.ts
   but src/index.ts re-exports *.js neighbors not present in the tarball. Add
   tsconfig.build.json (excludes tests), build script (tsc → dist), flip
   main/types/exports to dist/, ship dist/ in files. prepublishOnly runs
   build automatically so `npm publish` never ships an uncompiled tarball.
   Verified with bare import from clean dir: 17 exports resolve.

2. docs/consuming-core.md still referenced @atomicmemory/atomicmemory-engine
   in 5 code examples. Renamed to @atomicmemory/atomicmemory-core.

3. docker-compose + .env.example still exposed 'supermem' as DB name/user/
   password. Renamed to 'atomicmemory' across compose files, env examples,
   and docker-smoke-test.sh project name.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mount `memories` and `agents` routers under `/v1` in `createApp`, leaving
the unversioned `/health` infrastructure probe untouched. Updates
observability labels, tests that hit real HTTP, docs, and the docker
smoke script to match. Adds `versioned-mount.test.ts` to assert the
prefix is wired for both route families and that bare paths 404.

BREAKING CHANGE: clients must prefix requests with `/v1` (e.g.
`POST /v1/memories/ingest`, `PUT /v1/agents/trust`). `/health` is
unchanged.
The composed-boot-parity test exercises `PUT /v1/memories/config`,
which returns 410 Gone unless the startup-validated flag is set.
Local runs pass because `.env.test` (gitignored) has the flag set,
but CI didn't — leaving this test broken on every run since it
landed. Match local by setting the flag in the workflow env block.
@ethanj ethanj merged commit aa79395 into architecture2 Apr 19, 2026
1 check passed
@ethanj ethanj deleted the release/oss-prep branch April 19, 2026 20:06
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