Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
cfad676
Plan: one declaration per bus read (#3537)
trissim Oct 27, 2026
9c0c6ae
Merge branch 'refactor/one-declaration-per-bus-read' of https://githu…
trissim Oct 27, 2026
c57a747
Declare bus reads once: BusRead family, notifications migrated
trissim Oct 27, 2026
3c23ca2
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 27, 2026
36694a5
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 28, 2026
b97957a
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 28, 2026
1ab89e0
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 28, 2026
3d3a357
Type counts are measured each comparison, never stored by content (#3…
trissim Oct 28, 2026
7326056
One goal-history record answers every boundary (#3538)
trissim Oct 28, 2026
36611e2
Input delivery is one owner-live read; MCP no longer answers without …
trissim Oct 28, 2026
c0821f5
Owner-read tests derive their cases and run the delivery read against…
trissim Oct 28, 2026
e607be5
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 28, 2026
a4702b1
Owner reads admit only native owners and keep the incarnation they we…
trissim Oct 28, 2026
08263a4
Owner reads are held to their owner's lifetime: real EOF, root, recre…
trissim Oct 28, 2026
5c26262
The runtime envelope owns the owner exchange; the read capability sto…
trissim Oct 28, 2026
9bb8b2e
Owner-read fixtures drive the real async observer and the real deleti…
trissim Oct 28, 2026
8d21db4
A stale owner is refused as identity-changed before its process is as…
trissim Oct 28, 2026
21b0755
Notification reads are root-free operations; the UI envelope carries …
trissim Oct 28, 2026
975e4c9
Separate source qualification from head promotion
trissim Oct 28, 2026
7bcb1ca
Notification activity holds only projected participants; HistorySourc…
trissim Oct 28, 2026
c1d46c7
Cover qualification without promotion through real review fixtures
trissim Oct 28, 2026
5bcc78d
Read-state fixture watches native recipients, not the whole team (#3538)
trissim Oct 28, 2026
3c9d127
Factor head-only review behavior into an abstract capability
trissim Oct 28, 2026
7b5c78a
Notification reads acquire only their viewer's claims; viewers receiv…
trissim Oct 28, 2026
2e8db82
Controls for viewer-scoped evidence and published-only thread present…
trissim Oct 28, 2026
5126bc6
Presentations construct from their declared fields inline; forced-bat…
trissim Oct 28, 2026
ef1ae76
Forced-batch control lowers the limit only as far as schema validatio…
trissim Oct 28, 2026
5a8d979
Bind review patch identity to immutable integration source metadata
trissim Oct 28, 2026
ed6ff38
Sent summaries aggregate at their owner; the changed accumulator keep…
trissim Oct 28, 2026
7fff19b
Merge remote-tracking branch 'origin/main' into work/claude-nra--P872
trissim Oct 28, 2026
ffe8bd2
BusRead owns apply once; the reply test reads a read's result from it…
trissim Oct 28, 2026
780b995
Commander detail is one root-free shared read, comms_commander_unit (…
trissim Oct 28, 2026
1c8b7e8
The owner's goal is one owner-live read, comms_owner_goal (#3538)
trissim Oct 28, 2026
d92c063
A transcript page is one root-free shared read, comms_transcript_page…
trissim Oct 28, 2026
d5b7376
MCP answers a commander-detail branch refusal as a failed call; share…
trissim Oct 28, 2026
f675fbe
MCP answers a corrupt transcript as a failed call; tests send tool ar…
trissim Oct 28, 2026
be79ae6
Capture matched source trees and guard final carrier review at their …
trissim Oct 28, 2026
09a506d
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 28, 2026
c3c7912
Use the checkout lifecycle for matched source materialization
trissim Oct 28, 2026
701b587
TranscriptSnapshotUpdate.from_read declares its read and result
trissim Oct 28, 2026
5ed8ac7
debt ratchet: introduced occurrences are the one clean-lines gate; fi…
trissim Oct 28, 2026
908db01
debt ratchet: one lexical binding owner; a missing introduced report …
trissim Oct 28, 2026
13c7b05
Resolve actual CI source graphs and retain registered companion PR links
trissim Oct 28, 2026
1372658
debt ratchet: extracted field types compare by the owner they are bou…
trissim Oct 28, 2026
ebe43ce
Compare clients from their matched source cuts through the measure fa…
trissim Oct 28, 2026
1ea8ab3
debt ratchet: the held-class edge and Annotated strip read in class s…
trissim Oct 28, 2026
7577385
debt ratchet: ScopeNames decodes bindings; credit is keyed by the nod…
trissim Oct 28, 2026
037d6be
Build one checker environment for the captured source tuple in hosted CI
trissim Oct 28, 2026
1467ea1
Lock the TOML writer used by isolated checker preparation
trissim Oct 28, 2026
9a477db
Derive checker package contracts from standard backend wheel metadata
trissim Oct 28, 2026
e3d4ab0
Solve checker and runtime roots together with owned pin retention
trissim Oct 28, 2026
4fccef4
Retain locked Git package subdirectories through private resolution
trissim Oct 28, 2026
3707bf4
Seed source fixtures before publishing their main and PR history
trissim Oct 28, 2026
e85857b
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 28, 2026
1753f48
Own checker UV, Git and CI input boundaries in their declarations
trissim Oct 28, 2026
a963f32
Merge commit '75773856d9fa346a9db6d5644c6a6d4401743f69' into work/che…
trissim Oct 28, 2026
b89b358
Preserve native UV source contracts and share proved decoder traversal
trissim Oct 28, 2026
f215c75
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 28, 2026
19f7998
Validate retained UV options through their existing model boundary
trissim Oct 28, 2026
214fe3c
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 28, 2026
e2416c2
Preserve explicit checker runtime and decorator evaluation position
trissim Oct 28, 2026
810c8c9
Acknowledge verified selected native context during the running turn
trissim Oct 28, 2026
1e2e8b5
Keep harness admission distinct from complete original context evidence
trissim Oct 28, 2026
d170348
Import ClassFact from its declaration
trissim Oct 28, 2026
1fd3f86
Keep wake-only Monitor observations outside original-body proof
trissim Oct 28, 2026
aa249db
Cover grouped context acknowledgement and foreign input refusal
trissim Oct 28, 2026
4ccbcf8
Remove unused changed-path contract from client source policy
trissim Oct 28, 2026
c332f12
Cover later corroborated requests retaining the first receipt
trissim Oct 28, 2026
47e0c03
Retain independently verified context on each actual following input
trissim Oct 29, 2026
3acb842
Cover live triage context before independent verdict and failure
trissim Oct 29, 2026
5f7ab48
Separate native input proof declarations from session execution
trissim Oct 29, 2026
3312938
Share verified input context across ordinary and selected native turns
trissim Oct 29, 2026
99f25a0
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 29, 2026
6fba9a2
Derive client checker import roots from each captured project
trissim Oct 29, 2026
33261df
Plan: every rule opens with a greentext that makes the dumb path impo…
trissim Oct 29, 2026
734efcd
Plan: refrains carry the rhythm; nice after every claim in evidence-n…
trissim Oct 29, 2026
a4a355a
Plan: each greentext targets one RLHF reflex; sharpen owner-authority…
trissim Oct 29, 2026
ac8e26e
Plan: strings draft for slop-and-polymorphism
trissim Oct 29, 2026
8937197
Notification rows read queued presence from SQL and decode present va…
trissim Oct 29, 2026
838cba1
Plan: the strings greentext is slop-and-polymorphism's wake-up (Trist…
trissim Oct 29, 2026
1e97c4e
Merge remote-tracking branch 'origin/main' into work/claude-code--rul…
trissim Oct 29, 2026
579c3e5
RuleFile reads a wake-up before its Why and deals it in the reminder …
trissim Oct 29, 2026
6dd78c7
Every rule opens with its greentext wake-up
trissim Oct 29, 2026
cfcfb85
The deck never splits a wake-up: slice cap 2,000 -> 2,500
trissim Oct 29, 2026
f38af5e
Bound notification recipients before claim proof and reply acquisition
trissim Oct 29, 2026
ac2fbb0
Merge commit '75773856d9fa346a9db6d5644c6a6d4401743f69' into batch/in…
trissim Oct 29, 2026
37cd09a
Merge commit '6fba9a20bfe0139730c91fd946c2ff4105173073' into batch/in…
trissim Oct 29, 2026
0766082
Merge commit '8937197b06d08041238102de13261fa939a48bc2' into batch/in…
trissim Oct 29, 2026
fc2cf49
Merge commit 'cfcfb85c1bd70082d34ac45162e256002a7c1fa0' into batch/in…
trissim Oct 29, 2026
914daf0
Merge commit 'f38af5e5ef972921405aeba1636e652500d01475' into batch/in…
trissim Oct 29, 2026
3be7a1b
Resolve combined recipient selection and preserve native read contracts
trissim Oct 29, 2026
08b2149
Use retained receipt timing in historical notification controls
trissim Oct 29, 2026
068dc4f
Retain the context query binding in the combined assignment reader
trissim Oct 29, 2026
67ffdb3
Merge remote-tracking branch 'origin/main' into work/checkout-caller-…
trissim Oct 29, 2026
29a5627
Join native proof fixture writes through the isolated worker
trissim Oct 29, 2026
5d47c83
Merge commit '29a56272ec8eb06bd27dc9a76049becc7e69d561' into batch/in…
trissim Oct 29, 2026
04dce31
Separate reviewed source members from explicit combined-carrier promo…
trissim Oct 29, 2026
e7295c9
Project independent replies without context-taking claim eligibility
trissim Oct 29, 2026
fc311cd
Merge commit 'e7295c9a9a8964e3add16eaf774737e7c05e55df' into batch/in…
trissim Oct 29, 2026
fe0ca3c
Keep explicit merge permission out of persisted source-review records
trissim Oct 29, 2026
8a9f27c
Keep informational CLI deliveries out of automatic reply routes
trissim Oct 29, 2026
b90da5d
Merge commit 'fe0ca3c2fac5a2652ef0306c29b0b78daa223bd1' into batch/in…
trissim Oct 29, 2026
199291a
Merge commit '8a9f27c5cc7bd3d65981ce8dfc12a7977127bf10' into batch/in…
trissim Oct 29, 2026
96bb864
Declare a real tagged channel for monitor reply controls
trissim Oct 29, 2026
b3f25d2
Merge commit '96bb8644f72c1ee06768c978db3f2850742c8b0b' into batch/in…
trissim Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 29 additions & 4 deletions .github/workflows/debt-ratchet-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,18 @@ on:

permissions:
contents: read
pull-requests: read

# GitHub's actor supplies only Git object attribution, never merge permission.
# Process-scoped configuration reaches merge/commit-tree without changing any checkout.
env:
GIT_AUTHOR_NAME: ${{ github.actor }}
GIT_AUTHOR_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_COMMITTER_NAME: ${{ github.actor }}
GIT_COMMITTER_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_CONFIG_COUNT: "1"
GIT_CONFIG_KEY_0: commit.gpgsign
GIT_CONFIG_VALUE_0: "false"

concurrency:
group: debt-ratchet-cache
Expand All @@ -33,12 +45,20 @@ jobs:
with:
python-version-file: pyproject.toml

- name: Install agent-comms
- name: Bootstrap only Core and locked checker dependencies
run: |
python -m pip install packaging
python -m pip install "$(python -I src/agent_comms/installer/declared_uv.py pyproject.toml)"
uv sync --locked --all-extras
echo "$GITHUB_WORKSPACE/.venv/bin" >> "$GITHUB_PATH"
UV_PROJECT_ENVIRONMENT="$RUNNER_TEMP/checker-venv" uv sync --locked --all-extras
echo "$RUNNER_TEMP/checker-venv/bin" >> "$GITHUB_PATH"

- name: Resolve main's actual merged source tuple once
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --resolve-ci-inputs "$RUNNER_TEMP/paired-sources"

- name: Build the one common checker environment
run: PYTHONPATH=src:tools python tools/checker_stack.py --ci-inputs "$RUNNER_TEMP/paired-sources"

- uses: actions/cache/restore@v4
with:
Expand All @@ -50,7 +70,12 @@ jobs:
- name: Measure main against its parent
run: |
PYTHONPATH=src:tools python tools/debt_ratchet.py \
--root ${{ matrix.kind }} --base HEAD^1 --head HEAD || true
--root ${{ matrix.kind }} --base HEAD^1 --head HEAD --ci-inputs "$RUNNER_TEMP/paired-sources" || true

- name: The same sources are still current before saving cache
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --revalidate-ci-inputs "$RUNNER_TEMP/paired-sources"

- uses: actions/cache/save@v4
with:
Expand Down
84 changes: 61 additions & 23 deletions .github/workflows/debt-ratchet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ on:
permissions:
contents: read

# Materialization merges and tree proofs create Git objects; every child inherits this
# process-only identity/signing policy. No global or shared repository config is written.
env:
GIT_AUTHOR_NAME: ${{ github.actor }}
GIT_AUTHOR_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_COMMITTER_NAME: ${{ github.actor }}
GIT_COMMITTER_EMAIL: ${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_CONFIG_COUNT: "1"
GIT_CONFIG_KEY_0: commit.gpgsign
GIT_CONFIG_VALUE_0: "false"

# A superseded push to a pull request stops its old run; queue groups never share a group.
# The draft state is part of the key: a draft run skips every job but the ratchets, so one that
# starts in the same second as ready_for_review must not cancel the ready run (#3164 and #3154 lost
Expand Down Expand Up @@ -65,8 +76,18 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml
- name: Install agent-comms and test dependencies
run: python -m pip install -e src/agent_comms/skills/refactor-audit -e '.[dev]'
- name: Bootstrap only Core and locked checker dependencies
run: |
python -m pip install packaging
python -m pip install "$(python -I src/agent_comms/installer/declared_uv.py pyproject.toml)"
UV_PROJECT_ENVIRONMENT="$RUNNER_TEMP/checker-venv" uv sync --locked --all-extras
echo "$RUNNER_TEMP/checker-venv/bin" >> "$GITHUB_PATH"
- name: Resolve the actual tested source tuple once
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --resolve-ci-inputs "$RUNNER_TEMP/paired-sources"
- name: Build the one common checker environment
run: PYTHONPATH=src:tools python tools/checker_stack.py --ci-inputs "$RUNNER_TEMP/paired-sources"
- name: Compile production and tools
run: python -m compileall -q src tools
- name: Import every Core and hook module
Expand All @@ -90,7 +111,11 @@ jobs:
- name: Stack clients import only names Core has; the outgoing wire matches the base
env:
BASE: ${{ needs.base.outputs.base }}
run: python tools/module_layers.py --check --base "$BASE" --report "$GITHUB_STEP_SUMMARY"
run: PYTHONPATH=src:tools python tools/module_layers.py --check --base "$BASE" --ci-inputs "$RUNNER_TEMP/paired-sources" --report "$GITHUB_STEP_SUMMARY"
- name: The same sources are still current before success
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --revalidate-ci-inputs "$RUNNER_TEMP/paired-sources"

native-scripts:
name: native-scripts
Expand Down Expand Up @@ -162,26 +187,28 @@ jobs:
name: review-verdict
needs: ready
runs-on: ubuntu-latest
timeout-minutes: 2
timeout-minutes: 5
permissions:
contents: read
statuses: read
pull-requests: read
env:
GH_TOKEN: ${{ github.token }}
QUEUE_REF: ${{ github.event.merge_group.head_ref }}
steps:
# A pull request is pushed before its verdict exists; the queue's group
# is where the commander's verdict on the head must already be success.
- name: The commander's verdict on the queued head is success
if: github.event_name == 'merge_group'
shell: bash
run: |
[[ $QUEUE_REF =~ /pr-([0-9]+)- ]]
head=$(gh api "repos/$GITHUB_REPOSITORY/pulls/${BASH_REMATCH[1]}" --jq .head.sha)
verdict=$(gh api "repos/$GITHUB_REPOSITORY/commits/$head/status" \
--jq '[.statuses[] | select(.context == "agent-comms/review")][0].state // "none"')
echo "PR #${BASH_REMATCH[1]} head $head: agent-comms/review=$verdict"
[[ $verdict == success ]]
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml
- name: Install the native source-input reader
run: python -m pip install -e src/agent_comms/skills/refactor-audit -e .
# The PR check proves a separate combined carrier and exact reviewed members.
# The queue additionally requires the root's explicit promotion at this head.
# A hand gh auto-merge request cannot turn source acceptance into that permission.
- name: Only the captured combined carrier may merge
run: PYTHONPATH=src python -m agent_comms.integration --check-merge-inputs "$RUNNER_TEMP/merge-inputs"

ratchet:
name: debt-${{ matrix.kind }}
Expand All @@ -205,14 +232,20 @@ jobs:
with:
python-version-file: pyproject.toml

- name: Install agent-comms
- name: Bootstrap only Core and locked checker dependencies
run: |
python -m pip install packaging
python -m pip install "$(python -I src/agent_comms/installer/declared_uv.py pyproject.toml)"
uv lock --project stack --upgrade
UV_PROJECT_ENVIRONMENT="$GITHUB_WORKSPACE/.venv" uv sync --project stack --locked
uv pip install --python "$GITHUB_WORKSPACE/.venv/bin/python" -e '.[dev]'
echo "$GITHUB_WORKSPACE/.venv/bin" >> "$GITHUB_PATH"
UV_PROJECT_ENVIRONMENT="$RUNNER_TEMP/checker-venv" uv sync --locked --all-extras
echo "$RUNNER_TEMP/checker-venv/bin" >> "$GITHUB_PATH"

- name: Resolve the actual tested source tuple once
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --resolve-ci-inputs "$RUNNER_TEMP/paired-sources"

- name: Build the one common checker environment
run: PYTHONPATH=src:tools python tools/checker_stack.py --ci-inputs "$RUNNER_TEMP/paired-sources"

# Saved by debt-ratchet-cache.yml on main; entries are keyed by content, so any
# older main's cache only misses where the code differs.
Expand All @@ -229,10 +262,15 @@ jobs:
set -o pipefail
ratchet_status=0
PYTHONPATH=src:tools python tools/debt_ratchet.py \
--root ${{ matrix.kind }} --base "$BASE" --head HEAD 2>ratchet-findings.txt | tee ratchet.txt || ratchet_status=$?
--root ${{ matrix.kind }} --base "$BASE" --head HEAD --ci-inputs "$RUNNER_TEMP/paired-sources" 2>ratchet-findings.txt | tee ratchet.txt || ratchet_status=$?
cat ratchet-findings.txt >&2
exit "$ratchet_status"

- name: The same sources are still current before success
env:
GH_TOKEN: ${{ github.token }}
run: PYTHONPATH=src python -m agent_comms.integration --revalidate-ci-inputs "$RUNNER_TEMP/paired-sources"

# Hosted annotations stop at ten per step, so a unit never saw a long list (88 findings
# on the bus batch, 2026-10-21). The whole list goes on the pull request, one comment per
# kind, replaced on every run.
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ dev = [
"ruff==0.16.0",
"mypy==2.3.0",
"uv==0.13.1",
"tomli-w==1.2.0",
"nominal-refactor-advisor @ git+https://github.com/OpenHCSDev/NominalRefactorAdvisor@main",
]

Expand Down
14 changes: 8 additions & 6 deletions src/agent_comms/acp_extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from abc import abstractmethod
from dataclasses import dataclass, field, replace
from typing import TYPE_CHECKING, Annotated, Callable, ClassVar
from typing import TYPE_CHECKING, Annotated, Callable, ClassVar, Self


from .acp_failure import (
Expand Down Expand Up @@ -52,8 +52,10 @@
from .reported_turn import ReportedTurn, ReportedTurnState
from .routing import MessageRoute, NoMessageRoute
from .thread_identity import ClaimScoped, ThreadIncarnation
from .tool_result import DeclaredReply
from .transcripts import NativeCommittedPrefix, TranscriptCursor, TranscriptPage, TranscriptReadIdentity
from .tool_result import ToolResult
from .transcripts import (
NativeCommittedPrefix, TranscriptCursor, TranscriptPage, TranscriptRead, TranscriptReadIdentity,
)
from .turn_context import ContextManifest
from .turn_lease import TurnState
from .working_memory_labels import ModelLabel
Expand Down Expand Up @@ -138,7 +140,7 @@ def of(cls, *updates: AgentCommsUpdate) -> UpdateMetadata:


@dataclass(frozen=True)
class GoalSnapshotReply(DeclaredReply, GoalSnapshot):
class GoalSnapshotReply(ToolResult, GoalSnapshot):
"""A goal request's reply: the owner's goal snapshot and its turn state."""

execution: Annotated[GoalExecution, WireName("goalExecution")]
Expand Down Expand Up @@ -698,13 +700,13 @@ class TranscriptDraftUpdate(AgentCommsUpdate):


@dataclass(frozen=True)
class TranscriptSnapshotUpdate(AgentCommsUpdate):
class TranscriptSnapshotUpdate(AgentCommsUpdate, ToolResult):
page: TranscriptPage
identity: TranscriptReadIdentity
draft: DraftRow | None = None

@classmethod
def from_read(cls, read):
def from_read(cls, read: TranscriptRead) -> Self:
page, draft = read.read_snapshot()
return cls(page, read.identity, draft.external_row())

Expand Down
10 changes: 10 additions & 0 deletions src/agent_comms/agent_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@

from .agent_events import AgentEvent
from .launch_runtime import LaunchRuntime
from .native_input_proof import NativeContextProof
from .owned_turn import TurnDelivery
from .threads import Thread
from .transcript_sources import TranscriptSource
Expand Down Expand Up @@ -308,6 +309,15 @@ def original(self, native_id: InputId, text: str) -> bool: ...
def following(self, public_id: InputId, native_id: InputId, text: str) -> bool: ...


async def original_context_committed(self, sent_text: str, context: NativeContextProof) -> None:
"""An unowned input has no durable ordinary disposition to acknowledge."""

async def following_context_committed(
self, public_id: InputId, sent_text: str, context: NativeContextProof,
) -> None:
"""An unowned following input has no durable ordinary disposition."""


class NoInputStartListener(InputStartListener):
started_events = ()

Expand Down
23 changes: 1 addition & 22 deletions src/agent_comms/assignment_states.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from .wake_policy import BoundedTriageWake, Engagement, FullWake, PassiveWake, WakePolicy

if TYPE_CHECKING:
from collections.abc import Iterable, Sequence
from collections.abc import Iterable
from typing import Self

from .agent_activity import RecipientActivity
Expand Down Expand Up @@ -141,13 +141,6 @@ def require_completion(self) -> Engagement:
raise IdentityConflict("wake assignment is not completed")

notification_state: ClassVar[type[ContextualProgress]] = ContextualProgress
records_conversation_response: ClassVar[bool] = False

def recorded_response(
self, original: Delivered, replies: Sequence[Delivered], recipient_lookup: ThreadLookup
) -> Delivered | None:
return None

def notification(
self,
recipient: FrozenRecipient,
Expand Down Expand Up @@ -525,20 +518,6 @@ class DeliveredAssignment(
"""

decision: PendingDecision
records_conversation_response = True

def recorded_response(
self, original: Delivered, replies: Sequence[Delivered], recipient_lookup: ThreadLookup
) -> Delivered | None:
return next(
(
reply.message
for reply in replies
if reply.sender_lookup == recipient_lookup
),
None,
)

def notification(
self,
recipient: FrozenRecipient,
Expand Down
2 changes: 1 addition & 1 deletion src/agent_comms/attempt_recovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@

from .coordination_database import CoordinationStore
from .native_input_record import FullNativeExecution, TriageNativeExecution
from .native_pi import NativeContextProof
from .native_input_proof import NativeContextProof
from .native_prompt_binding import (
expected_prompt_bindings,
expected_prompt_matches_journal,
Expand Down
Loading
Loading