Skip to content

Integrate stranded merges: agent state store (#9) and FOUNDATION.md (#33)#34

Merged
hartsock merged 6 commits into
mainfrom
integrate/stranded-merges
Jun 6, 2026
Merged

Integrate stranded merges: agent state store (#9) and FOUNDATION.md (#33)#34
hartsock merged 6 commits into
mainfrom
integrate/stranded-merges

Conversation

@hartsock

@hartsock hartsock commented Jun 6, 2026

Copy link
Copy Markdown
Owner

Summary

#9 and #33 were merged into their (stacked) base branches after those bases had already landed on main — so main never received the agent state store or the foundation document. This PR brings both merge results onto main verbatim (no new code).

Stacked-PR lesson for the queue: retarget to main before merging once the base lands (GitHub merges into whatever the base ref is at click time).

Test plan

hartsock and others added 6 commits June 5, 2026 19:45
…ssue #7 A+B)

WHAT: (1) modulex-core/store.rs — rusqlite (bundled) store at
$MODULEX_STORE → [store] path → ~/.modulex/store.db; schema v1
(reminders, countdowns, watches + reserved ical_feeds/mcp_servers;
PRAGMA user_version); generation-stamped rows (created_gen/done_gen/
retired_gen/last_seen_gen — counters, never clocks); plain-JSON
export/import (sovereignty: no SQLite lock-in). (2) Engine grows an
optional store: seeds its generation counter from meta.last_generation
and persists it after each run, so generations are MONOTONIC ACROSS
RESTARTS; RunContext carries the store. (3) Steps: new 'reminders'
(overdue → due-today → upcoming → undated, recurrence tags);
countdown-calc now merges config + store entries; new 'url-watch'
(feature web, default on) fetching through agent-bridle-tool-web —
net-axis Caveats + SSRF screen + redirect re-check + DNS-rebind pin —
BLAKE3-hashing extracted content and reporting changed/unchanged since
the last seen generation. ExecGate exposes read-only tool_context() for
in-proc leashed tools. (4) MCP tools: reminder_add/list/done,
countdown_add/retire, watch_add/list/remove, store_export — mutation
stamps use the engine's current generation ('registered after run N').
(5) CLI: modulex remind add/list/done + modulex store export/import;
doctor reports store health.

WHY: issue #7 phases A+B — agents say 'remind me of X' through modulex
tools instead of hand-editing config; URL tracking lands behind the
same deterministic surface. 118 tests; live smoke proved the full loop
including cross-process generation persistence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Agent state store: SQLite reminders/countdowns/watches + leashed url-watch
WHAT: docs/FOUNDATION.md — the founding architecture document. Names
the problem (MCP servers bloat by default: schema flooding, prose
coupling, monolith creep), the three pillars that eliminate it
structurally (#26 data contract, #32 progressive disclosure, #10
declared-authority plugin crates), how they interlock (capability =
step type + data schema + optional facet tool + plugin crate; the
cost table), the ordered implementation plan (F1 data-contract core →
F2 tool-registry refactor → F3 disclosure mechanisms → F4 routine_eval
→ F5 reference plugin + authoring guide), the definition of done, and
the standing anti-bloat law (steps before tools; CI-pinned ≤12 tool
budget; versioned schemas; declared authority; disclosure tier stated
per PR). README repositioned to lead with the why; CLAUDE.md gains the
foundation-pass section gating plugin-backlog work until the pass
lands.

WHY: This is why the project exists — the anti-bloat construction is
the unique, community-valuable artifact; the morning routine is its
demo. The pass gets built first; the 20-suite backlog follows it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs: the foundation pass — anti-bloat by construction
@hartsock hartsock added the risk:low Scoped, tested, no CI/build changes label Jun 6, 2026
@hartsock hartsock merged commit 5bac7c4 into main Jun 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Scoped, tested, no CI/build changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant