feat(tess): add configurable Pi interaction service (#728)
This commit was merged in pull request #728.
This commit is contained in:
40
docs/scratchpads/tess-m2-001-pi-service.md
Normal file
40
docs/scratchpads/tess-m2-001-pi-service.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# TESS-M2-001 — Pi Interaction Service
|
||||
|
||||
## Scope
|
||||
|
||||
- Add a generic rostered/systemd Pi operator-interaction service in
|
||||
`packages/mosaic/framework`.
|
||||
- Pin the service to `openai/gpt-5.6-sol`, high reasoning, and the
|
||||
`operator-interaction` tool policy.
|
||||
- Keep identity as provisioning data; the product name appears only in the
|
||||
committed example roster.
|
||||
|
||||
## Security and Configuration Invariants
|
||||
|
||||
1. The chosen display/roster name is supplied as data and must exactly match the
|
||||
generic systemd instance.
|
||||
2. The service fails before launch if runtime, model, reasoning, or tool policy
|
||||
differs from the pinned policy.
|
||||
3. Effective-policy output includes only name, runtime, model, reasoning, and
|
||||
tool policy; it does not inspect or output credential variables.
|
||||
4. The default example is replaceable without a source change; the TDD suite
|
||||
provisions `Nova` from the same profile.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `src/fleet/tess-service-profile.test.ts` proves a `Nova` provisioning path,
|
||||
roster parser/env serialization, effective-policy output, fail-fast drift
|
||||
rejection, and absence of the product name from generic source/profile.
|
||||
- `test-fleet-units.sh` validates the generic interaction systemd unit requires
|
||||
per-agent config and invokes fail-fast startup validation.
|
||||
- `test-start-agent-session.sh` proves the tool-policy value is exported into
|
||||
the Pi pane; `compose-contract.spec.ts` proves it becomes an explicit
|
||||
runtime contract block.
|
||||
- Fresh-worktree dependency install plus root `pnpm typecheck`, `pnpm lint`,
|
||||
`pnpm format:check`, and `pnpm test` passed; package/full fleet suites passed.
|
||||
- Independent Codex code and security reviews passed with no remaining findings.
|
||||
|
||||
## Delivery Notes
|
||||
|
||||
- Branch starts from fresh `origin/main` at `86a50138`.
|
||||
- PR targets `main` and references issue `#708`.
|
||||
@@ -81,3 +81,5 @@ The provider advertises list, tree, read-only attach, send, and terminate. List/
|
||||
## Deployment
|
||||
|
||||
Tess runs as a rostered, systemd-supervised Pi agent using GPT-5.6 Sol and high reasoning. Secrets are supplied through approved runtime secret mechanisms. Startup fails when required model, gateway identity, Discord binding, or durable-state dependencies are missing. Health reports effective model/reasoning/tool policy without credential material.
|
||||
|
||||
The interaction-service identity is provisioning data, not a source identifier: the roster and per-agent environment carry the chosen display/roster name into a generic systemd instance. The service rejects a name mismatch or any drift from its pinned Pi/GPT-5.6 Sol/high/operator-interaction effective policy before launch. Its policy printer exposes only those resolved safe fields.
|
||||
|
||||
Reference in New Issue
Block a user