Skip to content

Slice 012: session process and agent loop - #22

Merged
HackTuah merged 6 commits into
mainfrom
slice/012-session-process-agent-loop
Sep 20, 2026
Merged

HackTuah merged 6 commits into
mainfrom
slice/012-session-process-agent-loop

Conversation

@HackTuah

Copy link
Copy Markdown
Member

Slice 012 at G3. PROOF.md carries the evidence per criterion including both crash tests; NOTES.md carries the ADR-0009 checkpoint measurements, the owner's no-Jido decision, the G1 plan, seven findings from the build and the deviations. Merge-commit method, then tag slice/012 on main.

…ice opens

ROADMAP row 012 to in_progress. NOTES.md carries the three measurements
the ADR names, each with the command that produced it, from jido 2.3.3,
jido_action 2.3.2 and jido_signal 2.2.0 read in a scratch directory; the
outcome is actions only (jido_action at slice 020, no agent runtime), one
of the three the ADR permits, open to the owner's veto at G1. Then the
fifteen-line build plan, the empty manual queue, and three deviations
stated before any code. plan_check: PASS.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
Owner decision on 2026-09-20 on the three measurements the checkpoint
produced: Trinity uses no Jido package. Appended to ADR-0009, superseding
the provisional decision and the earlier appended line, which stands as
written. docs/02, slice 020's spec (Trinity.Tools.Tool is Trinity's own
behaviour with jsv for its schemas), the standards register row (not
applicable) and the VERSIONS row (kept, marked not used) say the same.
Slice 012 is unchanged; it used none of it.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
One gen_statem per conversation under a DynamicSupervisor and a Registry:
idle, thinking, tool_wait, approval_wait (stub), compacting (stub), error.
A user message is a row, then a broadcast, then a model call in a Task
under the Session's own supervisor, talking back only by message; deltas
coalesce to at most 20 broadcasts a second and persist as a draft row every
500 ms or 2 KB; the draft is finalised at done (the one edit docs/05 now
names); a tool call runs the ToolRunner stub in a Task, writes a tool row,
and the loop continues under code-owned caps; a crash or provider error is
an error turn with the partial text kept; cancel persists what arrived as
interrupted; rehydrate marks a leftover draft interrupted and never resumes;
idle hibernates and stops on generic timeouts. Trinity.CorePolicy.hash/0 and
the sentinel (three families, tighten only) arrive here as the spec asks.

The 010 schema Trinity.Sessions.Session is renamed SessionRow (fix
referencing 010): docs/01 gives that name to the process. Seventeen tests,
including the two crash tests and 100 concurrent sessions with unchanged
pids; the fake provider gained global state and script sequences after
the first runs showed its process-local state was invisible to a
session's Task. Coverage 60.82%. docs/01 and docs/05 synced. G1 lines 1
to 14.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
PROOF.md carries every criterion's evidence: the gate at exit 0 (155
passed, 10 excluded), coverage 60.82% (up from 51.57%), the seventeen
session tests with timings, both crash tests, the 100-session run with
pid identity as the measurement, the tool path, backpressure, hibernation
and the caps. ROADMAP row 012 reads done.

Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
…fused apply/3 and the type checker refused the literal

Signed-off-by: Ayla Croft <aylacroft@proton.me>
@HackTuah
HackTuah merged commit e93e9d5 into main Sep 20, 2026
4 checks passed
@HackTuah
HackTuah deleted the slice/012-session-process-agent-loop branch September 20, 2026 14:08
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