Skip to content

Slice 1 (4/4): walking skeleton β€” stub runner + container entrypoint + e2e; CLAUDE.md - #4

Merged
tildesrc merged 1 commit into
mainfrom
slice1/04-skeleton
Jun 15, 2026
Merged

Slice 1 (4/4): walking skeleton β€” stub runner + container entrypoint + e2e; CLAUDE.md#4
tildesrc merged 1 commit into
mainfrom
slice1/04-skeleton

Conversation

@tildesrc

@tildesrc tildesrc commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Final PR for Slice 1. Ties the contracts into the walking skeleton + lands CLAUDE.md.

  • container.client.TaskServiceClient β€” REST client used from inside a container.
  • container.entrypoint β€” the entrypoint protocol: register (liveness), set slug if unset (the slug hook), run work, deregister.
  • sessionservice.stub_runner.StubRunner β€” stands in for the runner (real Docker+tmux is Slice 2).
  • tests/test_skeleton.py β€” end-to-end: create β†’ register β†’ set slug β†’ transition β†’ history, over REST.
  • CLAUDE.md β€” operating manual (determinism invariant, module map, glossary).

Slice 1 complete: 79 tests pass, mypy clean. Stacked; base is slice1/03-task-service.

πŸ€– Generated with Claude Code

@tildesrc tildesrc closed this Jun 12, 2026
@tildesrc tildesrc reopened this Jun 12, 2026
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 1fe9139 to b0b6b56 Compare June 12, 2026 17:34
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 12ec457 to 07b7858 Compare June 12, 2026 17:34
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from b0b6b56 to ec48b29 Compare June 12, 2026 18:35
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch 2 times, most recently from 7158983 to 819559e Compare June 12, 2026 19:02
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from ec48b29 to 9b7b2ac Compare June 12, 2026 19:02
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 9b7b2ac to f290a43 Compare June 12, 2026 19:07
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch 2 times, most recently from 9688647 to 0b112f5 Compare June 12, 2026 21:17
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from f290a43 to 297bf68 Compare June 12, 2026 21:17
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 0b112f5 to 8961ac5 Compare June 12, 2026 22:08
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 297bf68 to 19b9a55 Compare June 12, 2026 22:08
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 8961ac5 to 89c1d21 Compare June 14, 2026 15:11
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch 2 times, most recently from 1dc9aba to 3103323 Compare June 14, 2026 15:25
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 89c1d21 to 0405e77 Compare June 14, 2026 15:25
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 3103323 to 9adbd84 Compare June 14, 2026 16:05
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 0405e77 to 545ac23 Compare June 14, 2026 16:05
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 9adbd84 to 60b0922 Compare June 14, 2026 16:15
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 545ac23 to 2dbe3ad Compare June 14, 2026 16:15
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 60b0922 to 1d71128 Compare June 14, 2026 17:17
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch 2 times, most recently from c1e0010 to 3ecbcae Compare June 14, 2026 17:33
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch 2 times, most recently from 989856c to ade974c Compare June 14, 2026 17:38
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 3ecbcae to 6605c95 Compare June 14, 2026 17:38
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from ade974c to 18046e4 Compare June 14, 2026 19:11
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch from 6605c95 to f22d879 Compare June 14, 2026 19:11
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch 2 times, most recently from 6e2d1b5 to 3105924 Compare June 15, 2026 00:24
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch 2 times, most recently from 68afdd0 to e1cf4b4 Compare June 15, 2026 00:34
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 3105924 to 81e9d79 Compare June 15, 2026 00:34
@tildesrc
tildesrc force-pushed the slice1/03-task-service branch 3 times, most recently from 550f2b2 to de83f4e Compare June 15, 2026 00:57
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 81e9d79 to 824a8b0 Compare June 15, 2026 00:58
… CLAUDE.md

Slice 1, PR 4 of 4 β€” the walking skeleton proving the four contracts end to end.

- panopticon.container.client.TaskServiceClient: a thin REST client used from inside
  a task container (wraps httpx; a FastAPI TestClient in tests).
- panopticon.container.entrypoint.run_task_container: the entrypoint protocol β€”
  register (liveness), set the slug if unset (the slug hook; slugs are decided in the
  container), run work, deregister. No Docker, no LLM in this slice.
- panopticon.sessionservice.stub_runner.StubRunner: stands in for the runner by
  running the entrypoint in-process.
- tests/test_skeleton.py: create -> register -> set slug -> transition -> history,
  end to end over REST, with liveness cleanup asserted.
- CLAUDE.md: the operating manual (determinism invariant, module map, conventions,
  glossary), per the roadmap's per-slice definition of done.

Moves httpx to runtime deps (the container client uses it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tildesrc
tildesrc force-pushed the slice1/04-skeleton branch from 824a8b0 to aeb629c Compare June 15, 2026 01:03
@tildesrc
tildesrc changed the base branch from slice1/03-task-service to main June 15, 2026 01:03
@tildesrc
tildesrc merged commit 24cc1c9 into main Jun 15, 2026
@tildesrc
tildesrc deleted the slice1/04-skeleton branch June 15, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant