Skip to content

Audit: resident sees only wanted conversations; ledger rows survive mid-turn messages; venue and soul poison cut - #127

Merged
Octember merged 4 commits into
mainfrom
claude/iterate
Sep 8, 2026
Merged

Octember merged 4 commits into
mainfrom
claude/iterate

Conversation

@Octember

@Octember Octember commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Two adversarial review rounds after today's #releases-eng behavior.

  • respond() renders only direct or woken conversations; held threads never reach the resident
  • conversations: judged/wake_why replaced by last/woken; a row is deleted only if unchanged since render, otherwise its watermark advances
  • workers: one catch; interrupt only while active; max_turns finishes the task as failed; dead backoff_ms removed
  • voice.close in finally; channel-level replies not recorded as thread answers; replies paginate
  • ear prompt carries the legend; wake reason logged, not rendered to the resident
  • roster loads before the scheduler starts
  • alert venue: investigate-everything clause cut; resident soul: join-when-useful clause cut; ear soul frames persona and memory as the agent's

Deploy note: migration 0004 adds NOT NULL columns; conversations rows must be cleared while the service is stopped.

🤖 Generated with Claude Code

Octember and others added 4 commits September 8, 2026 17:41
…ments

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…rvive until unchanged; workers fail out instead of parking forever

- respond() filters on WANTED (direct or woken); held threads never reach the resident
- conversations.judged replaced by last: a row is deleted only when its last heard ts is unchanged, so messages landing mid-turn are not lost
- runWorker maps failure to a boolean; interrupt only when still active; max_turns finishes the task as failed
- Codex no longer owns ledger logic; judge() replaces shouldAgentRespond
- voice.close runs in finally; channel-level replies are not recorded as thread answers
- replies paginate; ear prompt gets the legend; wake reason no longer rendered to the resident
- roster loads before the scheduler starts
- ear soul: decide from the transcript; persona and memory framed as the agent's, not the ear's

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n a turn misses; one catch in runWorker; dead backoff_ms removed

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Octember
Octember merged commit dbd48e3 into main Sep 8, 2026
1 check passed
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