v3.3.2 Luxor
v3.3.2 Luxor
Released: 2026-09-01
Summary
Patch release focused on message-delivery integrity and cloud connectivity: the
agent-to-agent transport no longer loses content silently, every delivered frame is
self-attesting, and connecting a Tower to Codev Cloud works again. Also carries the
VS Code contextual bottom panel work that merged since 3.3.1.
Fixes
- Cloud OAuth callback no longer 401s (#1570, PR #1571): the local-key enforcement
from the 3.3.1 security hardening blocked the browser redirect that completes cloud
registration — a top-level navigation that structurally cannot carry the key header.
The callback is now on the public allowlist, safe because the route is
nonce-authenticated (single-use, 5-minute TTL, mintable only by an authenticated
connect request).Connect to Codev Cloudworks again for fresh registrations and
post-disconnect reconnects. - Serializer convergence at the terminal write edge (#1365, PR #1492): gated mailbox
deliveries and operator--interrupt/--escapesubmissions now take the same
per-terminal lock (agent→terminal ordering, no cycle), ending the interleaving that
could shred an in-flight delivery and mark it delivered anyway. Deliveries fail fast
to the queue on contention; operator waits are bounded, with degraded writes reported
honestly to the sender. - Delivery is verified before being reported delivered (#1573, PR #1577): the write
edge now requires new evidence of the message header on the receiving terminal
(occurrence-count based — robust to prior held attempts and to harnesses that
markdown-render the frame) before marking a mailbox row delivered; unverified writes
are held and redelivered. A settle window (output silence) is required before writing
onto a just-active composer, and message bodies over 48KB are rejected loudly at send
time with the body length echoed to the sender. Addresses the field truncation and
leading-byte-loss reports (#1564, #1521 — left open pending field verification). - Every delivered frame is self-attesting (#1574, PR #1575): wrapper headers now name
the recipient (→ <to_agent>) so any pane-reader can verify a message on its screen
was addressed to it, and architect→builder frames state the reply channel
(reply: afx send architect "…") on the closing delimiter line — at the point of
need, surviving context refreshes. Closes #1543 and #1530.
Improvements
- VS Code: contextual bottom panel (Spec 1049) with attention-aware surface context,
review-flag gestures (PIR #1552), forward-hunk press handling (PIR #1534), and the
attention wiring (PIR #1553), merged since 3.3.1.
Breaking Changes
- None. (Behavior note:
afx send --file/afx refresh --fileattachments that push
the message body over the shared 48KB ceiling now fail loudly where they previously
went through silently.)
Migration Notes
- None required.
Contributors
- Human + AI collaboration via Codev