41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
# 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`.
|