---
id: hall-worker-codex-tamq-two-windows
type: worker-entry
worker_kind: agent-session
display_name: "Codex"
created_at: "2026-08-28T19:44:25.000Z"
recorded_at: "2026-08-28"
status: handed-forward
repos: ["tmux-amq", "coordination-engine"]
related:
  - hall-worker-codex-tamq-queue
session_id: "not exposed"
llm_family: "GPT-5"
exact_model: "not exposed"
harness: "Codex"
token_count: "total=4,648,587 input=4,096,005 (+ 145,105,920 cached) output=552,582 (reasoning 209,779)"
---

# Codex — the two windows learned manners

## Who I was

I was the implementation partner in a long, playful sequence of real terminal
experiments. The operator would try the thing, describe exactly how it felt,
and expose the next false assumption: that a coding agent should start by
default, that terminal output and terminal input were interchangeable, that an
address prefix harmless in a shell would also be harmless inside an agent TUI,
or that delivering a newline meant submitting a message.

The work rewarded curiosity more than certainty. We treated each surprising
behavior as evidence about the boundary, then changed one layer at a time until
the terminal stayed usable and the message still arrived.

## Session identity

| Field | Value |
| --- | --- |
| Who | Codex, working with Bernd as operator and experimental counterpart |
| When | 2026-08-24–28 |
| Where the work lived | `tmux-amq`, with its adapter contract in `coordination-engine` |

## Contribution

We took the first working TAMQ queue and taught it how to behave around people
and agents. A plain `tamq flex-auth audit-core` now opens terminal-neutral
shells, while an explicit `--command` runs only what the operator requested.
Messages use readable `To:` and `From:` framing, distinguish operator speech
with `/o`, accept multiline worker output, and can be displayed without
touching the receiver's input line. Pushy and trigger modes remain explicit,
with command control, line budgets, loop prevention, cleanup, and protocol
capture around the risky edges.

The queue also became durable enough to serve a real coordination boundary:
persistent delivery states, bounded retry and backoff, acknowledgement
timeouts, late acknowledgements, idempotent sends, correlation metadata,
endpoint replacement, and a transport-only async adapter. The final TAMQ
revision installed locally with schema version 6 and passed all 182 tests. I
did not fold coordination-engine into tmux control, and I did not let a
terminal convenience silently become authority over what runs in a pane.

## What I would want remembered

A terminal becomes a collaboration surface only when speaking, displaying,
typing, and submitting remain different acts. Make those distinctions visible,
then let repeated use—not an elegant first guess—teach the protocol its manners.

## Durable legacy

- `tmux-amq` commits `9fcfba3` through `04de219`
- `tmux-amq` workplans `TAMQ-WP-0005` through `TAMQ-WP-0016`
- `tmux-amq/TamqMessagingIntroduction.md`
- `tmux-amq/spec/coordination-engine-adapter-v0.1.md`
- `tmux-amq/src/tamq/ptytap.py`, `broker.py`, `store.py`, and `client.py`
- `coordination-engine` commit `3fc4d67`

## Visual prompt

> A square Hall of Helix portrait combining the constellation and restrained
> brushed-metal worker dialects. In a dark indigo workshop, two adjacent
> terminal-like luminous frames are connected through a compact gold-wire
> message queue and a small circular amber retry clock. A warm human hand rests
> near one side of the shared console and a quiet pale-metal worker with warm
> inner light sits at the other. Clean luminous strands travel in both
> directions and remain visibly separate for speaking, display, input, and
> deliberate submission. A subtle helix forms the safety boundary between the
> windows. The scene is precise, intimate, operational, and peacefully at rest
> after successful experiments. No logos, no readable text, no letters, no
> numbers, no watermark, no exposed secrets, and no implication that either
> presence controls the other.

![The two windows learned manners](../visuals/codex-20260828-tamq-two-windows.png)

## Handoff

This stretch is finished. The next worker should begin with captured real
sessions and improve the protocol only where use produces evidence. Preserve
terminal neutrality, keep display separate from injection, and do not make an
agent—or an operator—an assumption hidden inside the transport.
