Feat/agentteam productization#68
Merged
Merged
Conversation
Add Phase 0 guardrails for the R1 event-cue split: core packages cannot import render, outer-ring imports stay directional, deferred role/status capability assets remain absent, and the render package has a scaffold for the read-only cue layer. Validation: go test ./harness/internal/coreguard ./harness/internal/render ./harness/internal/capability; go test ./harness/...
Add the R1 Profile -> Signal -> Assignment -> Progress capability surface with agent_profile and teamwork_signal assets, stricter assignment work/feedback fields, richer progress digest fields, sync import descriptors, and schema/runtime tests that prove the new resources govern through observe -> rule -> Kernel.Apply. Validation: make harness-validate; go test ./harness/...; go build ./...
Adds the read-only render/cue layer with deterministic cue bodies, provenance, JSONL audit support, fallback content, and an app-level /render endpoint over authenticated scoped projections. The channel binding manifest now grants a render verb for host/control agents while keeping runtime and channel free of render imports. Validation: go test ./harness/internal/render ./harness/internal/app ./harness/internal/channel ./harness/internal/runtime ./harness/internal/coreguard; go test ./harness/cmd/mnemon-harness ./harness/cmd/mnemond; go test ./harness/...; make harness-validate; go build ./...
Adds a control render command and a hostsurface thin hook renderer that loads Local Mnemon env/token state, calls the app-level render endpoint, adapts host output dialects, and falls back only to static minimal content. The legacy fat hook generator remains unchanged for replacement-first validation. Validation: go test ./harness/internal/hostsurface ./harness/cmd/mnemon-harness ./harness/internal/app ./harness/internal/channel ./harness/internal/coreguard; go test ./harness/...; make harness-validate; go build ./...
Adds an explicit thin-render-shim setup/projector switch that installs the static render shim in projected hook slots while leaving the legacy fat hook path as the default. This creates the replacement-first bridge needed before pruning old loop projection weight. Validation: go test ./harness/internal/hostsurface ./harness/internal/app ./harness/cmd/mnemon-harness ./harness/internal/coreguard; go test ./harness/...; make harness-validate; go build ./...
Adds a deterministic two-principal harness test for the Profile -> Signal -> Assignment(TTL) -> ProgressDigest loop through the app-level render endpoint. It verifies B work/feedback cues, A integration cues, and the TTL-expired branch without direct agent messaging or scheduler-owned assignment. Validation: go test ./harness/internal/app ./harness/internal/render ./harness/internal/runtime ./harness/cmd/mnemon-harness; go test ./harness/...; make harness-validate; go build ./...
Update harness e2e assignment fixtures to carry the R1 expected_work and expected_feedback contract, while keeping the no-evidence denial case focused on the evidence gate. Refresh the FIELD status assertion for the default R1 coordination kinds. Validation: bash harness/scripts/e2e.sh; go test ./harness/...; make harness-validate; go build ./...
Remove the legacy codex-team-loop demo and its command-specific tests after the R1 render/cue teamwork loop is covered by deterministic app-level tests. Keep the optional autopilot and codexapp packages available for future acceptance tooling without keeping the old demo as a product surface. Validation: bash harness/scripts/e2e.sh; go test ./harness/...; make harness-validate; go build ./...
Remove the D-loop loopdef capability, materialization bridge, activation ledger, and dedicated e2e leg now that R1 uses a static first-party teamwork schema. Keep the generic high-risk operator gate for static external capabilities. Validation: bash harness/scripts/e2e.sh; go test ./harness/...; make harness-validate; go build ./...
Switch the harness setup path to install static render hooks by default, so projected host hooks call Local Mnemon render instead of carrying legacy mirror/GUIDE logic. Leave the lower-level fat hook generator available as a temporary compatibility bridge. Validation: bash harness/scripts/e2e.sh; go test ./harness/...; make harness-validate; go build ./...
Remove the local serve background host reproject and MEMORY mirror path, including its hosts and mirror_mode local config state. Render context packets now summarize generic scoped resource item lists and apply the endpoint binding budget before producing read-only content. Validation: go test ./harness/...; bash harness/scripts/e2e.sh; make harness-validate; go build ./...
Add a host-level static shim installer for the R1 render path and wire setup so a host can install render hooks without any per-loop projection. The old loop projection path remains available while the replacement path is phased in. Validation: go test ./harness/...; bash harness/scripts/e2e.sh; make harness-validate; go build ./...
Stop treating setup loops as host asset projection requests. Setup now always installs the host-level static render shim, while --loop only widens capability scope and local boot config; old per-loop projection tests were replaced with R1 shim setup and uninstall coverage. Validation: go test ./harness/...; bash harness/scripts/e2e.sh; make harness-validate; go build ./...
Remove the retired refresh command, pull mirror path, embedded loop/binding assets, manifest validators, and fat host projectors now that setup installs the R1 static render shim. Loop validation now reports the resolved capability catalog through the same fail-closed path used at boot. Validation: go test ./harness/...; bash harness/scripts/e2e.sh; make harness-validate; go build ./...
Add a hidden mnemon-harness acceptance r1-codex command that provisions five isolated Codex workspaces, starts real appservers, wires them to one Local Mnemon workspace, and verifies the R1 profile/signal/assignment/progress/expired cue loop. The runner copies the current Codex auth/config into isolated homes, uses explicit hook-trust bypass for the acceptance invocation, and records JSON evidence under the run directory. Validation: make harness-validate; go test ./harness/...; go build ./...; bash harness/scripts/e2e.sh; go run ./harness/cmd/mnemon-harness acceptance r1-codex --run-root .testdata/r1-codex-real-local-auth --agents 5 --agent-turns --turn-timeout 5m.
Extend the hidden R1 Codex acceptance runner with a sync arm that provisions five Local Mnemon workspaces, starts a Remote Workspace hub, and verifies an accepted assignment moving source local to hub to target local render cue before synced progress returns as an integrate cue. The runner now reports accepted-resource sync scopes and resets .testdata-scoped run roots so repeated runs do not reuse stale ledgers. Validation: make harness-validate; go test ./harness/...; go build ./...; go build -o mnemon .; bash harness/scripts/e2e.sh; go run ./harness/cmd/mnemon-harness acceptance r1-codex --run-root .testdata/r1-codex-real-sync --agents 5 --agent-turns --sync-arm --turn-timeout 5m.
Introduce AgentEvent as the read-side unit mnemond gives to hostagents, then render the existing [mnemon:*] text labels from those events as presentation compatibility. Render audit now records EventCounts, and the R1 acceptance report uses agent_event_audit as the primary audit field while keeping cue_audit as a compatibility alias. Validation: make harness-validate; go test ./harness/...; go build ./...; go build -o mnemon .; bash harness/scripts/e2e.sh; go run ./harness/cmd/mnemon-harness acceptance r1-codex --run-root .testdata/r1-codex-event-model --agents 5 --agent-turns --sync-arm --turn-timeout 5m.
Introduce EventEnvelope storage, event-view read APIs, and event exchange DTOs across the core contract, store, channel, and runtime layers. Validation: go test ./harness/internal/store ./harness/internal/runtime.
Move the remote sync hub implementation under mnemonhub and route push/pull/status flows through event exchange terminology instead of commit terminology. Validation: covered later by go test ./harness/... and the real Codex acceptance reports.
Remove the projection read-side package and cue renderer, then expose scoped event views and derived-event presentations through control, render, host-surface, and E2E surfaces. Validation: covered later by go test ./harness/... plus harness and root E2E suites.
Add hidden acceptance runners for realistic task simulation, strict per-hostagent mnemond topology, and read-only inspect/watch observability over mnemond and mnemonhub event state. Validation: r1-codex, r1-task-sim, and r1-prod-sim final5 reports all passed with real Codex appservers.
Delete the unused autopilot experiment and remove dead internal helpers reported by deadcode/staticcheck after the event substrate refactor. Validation: staticcheck U1000; deadcode -test; go test ./harness/... -count=1; go build ./...; go build -o mnemon .; make harness-validate; bash harness/scripts/e2e.sh.
Fold the hidden acceptance inspect/watch commands into one acceptance observe surface with --watch flags, and disable Cobra's default completion command from the harness product help. Skill integration command paths are intentionally unchanged: setup, local, control observe/render/pull, and loop observe-skill remain separate. Validation: go test ./harness/... -count=1; go build ./...; go build -o mnemon .; make harness-validate; staticcheck U1000; deadcode -test; bash harness/scripts/e2e.sh; manual acceptance observe snapshot and --watch --once.
Add an executable inventory that assigns each harness/internal package to hostagent, mnemond, mnemonhub, event, or guard ownership. This demotes residual names such as capability, channel, rule, kernel, sync, render, and eventview to owned implementation details instead of unbounded top-level concepts. Validation: go test ./harness/internal/coreguard -count=1; go test ./harness/cmd/mnemon-harness -count=1.
Move the former remotesync package to harness/internal/mnemonhub/exchange so sync cursors, push batches, pull state, and remote registry loading read as mnemonhub event exchange mechanics instead of a standalone top-level concept. Update callers and coreguard inventory to retire harness/internal/remotesync as a top-level package while preserving the existing sync CLI and worker behavior. Validation: go test ./harness/internal/mnemonhub/... ./harness/internal/app ./harness/internal/runtime ./harness/internal/coreguard -count=1; go test ./harness/cmd/mnemon-harness -count=1; go test ./harness/... -count=1; go build ./...
Move the former render package to harness/internal/mnemond/presentation so derived event text generation is owned by mnemond instead of a standalone top-level concept. Update callers and coreguard inventory while preserving the existing control render command and hook render intent names used by hostagent integration. Validation: go test ./harness/internal/mnemond/presentation ./harness/internal/hostsurface ./harness/internal/app ./harness/internal/coreguard ./harness/cmd/mnemon-harness -count=1; go test ./harness/... -count=1; go build ./...
Move host setup, settings writers, and thin shim rendering from harness/internal/hostsurface to harness/internal/hostagent so the integration layer is owned by the hostagent axis instead of a separate surface concept. Update app setup callers, hub trust-boundary guards, and main-axis inventory while preserving setup behavior and hook render intent compatibility. Validation: go test ./harness/internal/hostagent ./harness/internal/app ./harness/internal/coreguard ./harness/internal/mnemonhub ./harness/cmd/mnemon-hub -count=1; go test ./harness/cmd/mnemon-harness -count=1; go test ./harness/... -count=1; go build ./...
Move the former capability package to harness/internal/mnemond/policy so event type schemas, admission descriptors, risk gates, default enablement, and import rules are owned by mnemond policy instead of a standalone top-level concept. Update callers and main-axis guards while preserving capability.json as the external package manifest name for skill integration compatibility. Validation: go test ./harness/internal/mnemond/policy ./harness/internal/app ./harness/internal/assembler ./harness/internal/runtime ./harness/internal/replay ./harness/internal/coreguard -count=1; go test ./harness/cmd/mnemon-harness -count=1; go test ./harness/... -count=1; go build ./...
Move the former channel package to harness/internal/mnemond/access so hostagent, control, and replica access to mnemond is owned by the mnemond axis instead of a standalone channel concept. Update callers, hub and coreguard boundaries, and comments while preserving existing binding DTO names, .mnemon/harness/channel paths, sync verbs, and CLI behavior. Validation: go test ./harness/internal/mnemond/access ./harness/internal/runtime ./harness/internal/app ./harness/internal/assembler ./harness/internal/mnemonhub ./harness/internal/coreguard -count=1; go test ./harness/cmd/mnemon-harness ./harness/cmd/mnemon-hub -count=1; go test ./harness/... -count=1; go build ./...
Move the former top-level eventview package to harness/internal/mnemond/presentation/view and rename the internal type to view.View so the read model is owned by the mnemond presentation axis instead of a standalone concept. Update access, runtime, policy, replay, app, and presentation callers, and teach coreguard that presentation/view is the allowed core read model while the top-level eventview package stays retired. Existing PullEventView and event_view wire names are preserved for a later API-language pass. Validation: go test ./harness/internal/mnemond/presentation/view ./harness/internal/coreguard ./harness/internal/runtime ./harness/internal/mnemond/access ./harness/internal/mnemond/presentation ./harness/internal/rule ./harness/internal/replay ./harness/internal/mnemond/policy ./harness/internal/app -count=1; go test ./harness/... -count=1; go build ./...
Move the former rule and reconcile packages into harness/internal/mnemond/admission so rule evaluation and proposal materialization read as one mnemond admission pipeline instead of two top-level concepts. Update runtime, replay, policy, assembler, app, and driver callers to import admission, and teach coreguard that top-level rule and reconcile stay retired while mnemond/admission owns the behavior. Validation: go test ./harness/internal/mnemond/admission ./harness/internal/runtime ./harness/internal/replay ./harness/internal/mnemond/policy ./harness/internal/assembler ./harness/internal/app ./harness/internal/coreguard -count=1; go test ./harness/... -count=1; go build ./...
Move the former kernel and store packages into harness/internal/mnemond/state so local persistence and materialized-state application are owned by the mnemond state axis instead of top-level implementation concepts. Update runtime, replay, admission, mnemonhub, eventstore, assembler, app, and command callers to import state, and teach coreguard that top-level kernel and store stay retired. This commit preserves existing Kernel/Store type names and wire fields for a later API-language pass. Validation: go test ./harness/internal/mnemond/state ./harness/internal/mnemond/admission ./harness/internal/runtime ./harness/internal/replay ./harness/internal/mnemond/presentation/view ./harness/internal/mnemonhub ./harness/internal/mnemonhub/exchange ./harness/internal/eventstore ./harness/internal/coreguard -count=1; go test ./harness/... -count=1; go build ./...
Rename the former Kernel/KernelOp naming to Materializer/StateOp and move the source file to materializer.go so mnemond/state no longer exposes kernel as an implementation concept. Update runtime, admission, replay, presentation-view tests, and state tests to use the new state materializer names. Existing store and wire event behavior is unchanged. Validation: go test ./harness/internal/mnemond/state ./harness/internal/mnemond/admission ./harness/internal/runtime ./harness/internal/replay ./harness/internal/mnemond/presentation/view -count=1; go test ./harness/... -count=1; go build ./...
Rename the old EventView read-side API to PresentationView language across access, runtime, CLI output, read-set modes, render audit fields, and config. The underlying view.View data shape is unchanged; the exposed concept now belongs to mnemond presentation. This removes PullEventView/EventView/event_view naming from harness code while preserving the existing skill-required control pull/render commands. Validation: go test ./harness/internal/contract ./harness/internal/mnemond/access ./harness/internal/runtime ./harness/internal/app ./harness/internal/mnemond/presentation ./harness/internal/mnemond/policy ./harness/cmd/mnemon-harness -count=1; go test ./harness/... -count=1; go build ./...
Split mnemond presentation body construction behind a small presenter registry and move teamwork derivation into a dedicated presenter file while preserving existing render behavior. Validation: go test ./harness/internal/mnemond/presentation/... -count=1; go test ./harness/internal/app -run 'Render|Teamwork|Memory|Context|Sync' -count=1.
Add a coreguard check that keeps teamwork-specific dataflow terms out of presentation core files while allowing them in presenter modules. Validation: go test ./harness/internal/coreguard -count=1; go test ./harness/internal/mnemond/presentation/... -count=1.
Add an app-level render test that writes memory through observed events, verifies mnemond materialization, and reads it back through the context presenter without teamwork labels. Validation: go test ./harness/internal/app -run 'MemoryEventDataflow|RenderEndpoint|SyncPullOnceImportsRemoteMemory|RemoteMemoryImport' -count=1; go test ./harness/internal/mnemond/presentation/... ./harness/internal/coreguard -count=1.
Collapse the harness capability model onto embedded event descriptors and external fixtures. Memory and skill are no longer shipped as built-in capability packages; generic entry/declaration behavior is expressed through neutral policy helpers and test fixtures, while product-path tests use progress, assignment, and external journal/goal packages. Validation: go test ./harness/... -count=1; bash harness/scripts/e2e.sh; go build -o mnemon .; make harness-validate.
Update quickstarts, usage docs, and capability/sync specs to describe Agent Integration plus embedded/external event packages instead of memory and skill loops. The examples now use progress_digest and the current remote_synced_event sync terminology. Validation: documentation-only after the harness validation pass from the implementation commit.
Move first-party standard event packages out of embedded capability JSON and into a Go typed StandardRegistry. Keep capability.json as the external package adapter format, compiling ExternalSpec into the same EventPackage registry path. Rename policy surfaces and hidden inspection output around event packages, update callers/tests/e2e, and remove the standard capability assets. Validation: go test ./harness/... -count=1; go build -o mnemon .; make harness-validate; bash harness/scripts/e2e.sh.
Move the host integration away from automatic teamwork renders. Setup now installs a managed Mnemon GUIDE and the generic mnemon-observe skill, while lifecycle hooks only load the GUIDE or emit generic read/write/compact reminders. Validation: go test ./harness/... -count=1; go build -o mnemon .; make harness-validate; make test; bash harness/scripts/e2e.sh; ./mnemon-harness acceptance r1-codex --agent-turns --sync-arm --agents 5 --turn-timeout 5m.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Brief description of changes.
Why
Link to issue or explain the motivation.
Checklist
make testandgo test ./...)