M7.1: extract nisse-core #143

Merged
dongar merged 1 commits from extract-core into main 2026-10-13 19:01:59 +00:00
Collaborator

Development Plan M7.1. Moves what isn't the dev agent's into nisse-core, with no change in behaviour.

Moved to nisse_core, each with its tests:

  • transcript and models: canonical, render, render_anthropic, llm, catalog, probe, context, views;
  • durability: state, reconcile, worker, cancel, dump;
  • conversation: transport, matrix;
  • execution: execution, testing;
  • knowledge: vault, memory;
  • operations: oplog, envfile;
  • the tracker and forge: gitea, moved whole as agreed.

Seams:

  • State store. nisse_core.state.StateStore holds the tables every agent has (schema v4). An agent's subclass adds its own SCHEMA, SCHEMA_VERSION, MIGRATIONS, ACTORS and SHOWN. nisse_dev.state.StateStore adds vm_blocks (v5) and the dev roles. Existing v5 stores open unchanged, and v4 stores still migrate.
  • Views. views.project takes the role table as an argument instead of a module constant.
  • Vault. Vault now requires agent=, the agent's name written into provenance. It used to default to nisse-dev.

Stays in nisse-dev (deferred, as agreed): the loop, config, git, delegation, expert, tools and evals.

Tests:

  • New: test_independence.py, which checks that nisse_core never imports an agent. A deliberately bad import made it fail, as it should.
  • New: test_dev_state.py, covering VM blocks, the v4→v5 migration, and the dev roles and views against the core store.
  • Locally, the unit tier passes (826 tests) and ruff is clean. CI runs the walks and the smoke e2e.

Docs:

  • Development Plan: M7.1 marked done. Phase 6 marked as waiting on the agent host and Terraform.
  • Architecture: Part L now names the package's modules.
  • nisse-core/README.md rewritten to list the modules.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk

Development Plan M7.1. Moves what isn't the dev agent's into `nisse-core`, with no change in behaviour. **Moved to `nisse_core`, each with its tests:** - transcript and models: `canonical`, `render`, `render_anthropic`, `llm`, `catalog`, `probe`, `context`, `views`; - durability: `state`, `reconcile`, `worker`, `cancel`, `dump`; - conversation: `transport`, `matrix`; - execution: `execution`, `testing`; - knowledge: `vault`, `memory`; - operations: `oplog`, `envfile`; - the tracker and forge: `gitea`, moved whole as agreed. **Seams:** - **State store.** `nisse_core.state.StateStore` holds the tables every agent has (schema v4). An agent's subclass adds its own `SCHEMA`, `SCHEMA_VERSION`, `MIGRATIONS`, `ACTORS` and `SHOWN`. `nisse_dev.state.StateStore` adds `vm_blocks` (v5) and the dev roles. Existing v5 stores open unchanged, and v4 stores still migrate. - **Views.** `views.project` takes the role table as an argument instead of a module constant. - **Vault.** `Vault` now requires `agent=`, the agent's name written into provenance. It used to default to `nisse-dev`. **Stays in nisse-dev** (deferred, as agreed): the loop, `config`, `git`, `delegation`, `expert`, `tools` and `evals`. **Tests:** - New: `test_independence.py`, which checks that `nisse_core` never imports an agent. A deliberately bad import made it fail, as it should. - New: `test_dev_state.py`, covering VM blocks, the v4→v5 migration, and the dev roles and views against the core store. - Locally, the unit tier passes (826 tests) and `ruff` is clean. CI runs the walks and the smoke e2e. **Docs:** - Development Plan: M7.1 marked done. Phase 6 marked as waiting on the agent host and Terraform. - Architecture: Part L now names the package's modules. - `nisse-core/README.md` rewritten to list the modules. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
dev-agent added 1 commit 2026-10-13 18:37:11 +00:00
M7.1: extract nisse-core
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m42s
CI / e2e (pull_request) Successful in 4m0s
154a0c3fa8
What isn't the dev agent's moves to nisse-core, unchanged in behaviour,
with its tests: canonical, render, render_anthropic, llm, catalog, probe,
context, views, state, reconcile, worker, cancel, dump, transport, matrix,
execution, testing, vault, memory, oplog, envfile and gitea (whole).

- nisse_core.state.StateStore holds the tables every agent has; an
  agent's subclass adds its tables (version, migrations), roles and
  views. nisse_dev.state.StateStore adds the build VM blocks (v5).
- views.project takes what each role is shown, rather than a fixed table.
- Vault takes the agent's name (agent=), for provenance.
- A test that nisse_core never imports an agent.
- The loop, config, git, delegation, expert, tools and evals stay in
  nisse-dev until nisse-ops has a loop to share.

Docs: the Development Plan marks M7.1 done and notes that Phase 6 waits on
the agent host and Terraform; Architecture Part L names the package.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
dongar approved these changes 2026-10-13 19:01:53 +00:00
dongar merged commit 5ea6e4610f into main 2026-10-13 19:01:59 +00:00
dongar deleted branch extract-core 2026-10-13 19:01:59 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#143