Files
stack/docs/scratchpads/tess-m2-001-pi-service.md
Jarvis c58e86e2b9
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
feat(tess): add configurable pi interaction service
2026-07-12 21:37:53 -05:00

1.8 KiB

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.