Skip to content

Fix what the reviews of questions, tickets and the team found - #56

Merged
danielehrhardt merged 3 commits into
mainfrom
fix/review-findings
Oct 4, 2026
Merged

danielehrhardt merged 3 commits into
mainfrom
fix/review-findings

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

Questions and approvals

  • An answer counts as read the moment Claude starts replying, not when the
    run ends: a crash later can no longer hand an approval over twice.
  • Stopping the run that was to read an answer drops it, so no later turn
    is told "Do it now" for a step the human stopped (queued messages that
    take over still carry it).
  • A continued run whose own note already carries the answer doesn't get a
    second copy; a lost session's retry keeps it.
  • A reply sent while the agent is still asking waits a moment and counts
    as the answer (chat, ticket, Slack/Telegram/Teams owner).
  • A follow-up in a platform chat that asks a question posts its answer once.
  • An automation's reminder replaces the earlier notice, so answering
    settles it.

Tickets

  • A manager's note no longer leaves a waiting ticket in progress for good;
    its notes count per ticket and belong to no run of the ticket.
  • Cancelling a waiting coding ticket's follow-up delivers it like a run's
    end: push and pull request.
  • A follow-up an earlier run set is cancelled once a later run finished
    the work, instead of keeping the ticket waiting.
  • Deleting a waiting ticket no longer delivers it on the way out.
  • Ticket cost counts each run's own cost: runs from before the
    session-cost fix only count what they added to the chat's session.
    Totals are added up again once, and after a restore (with who filed the
    ticket and why it is blocked).
  • The reply box drops its "Sending…" row once sent; the phone stops
    saying "Working on it" for tickets that wait.
  • "Open the pull request" is recorded once, not every round.

Team

  • The handoff card follows exactly the run its result names.
  • A continued run that waits for a free slot stays "queued"; Activity's
    live list and follow-ups count running runs only.
  • Reporting loops are found however long the line.
  • "On its plate" shows waits for Claude's usage limit (runs list their
    pause).
  • Any stop by the human clears "Last run failed" (chat, board, platform,
    a paused run).
  • An agent can't set a lead that reads secrets or controls the computer
    when it couldn't hand that agent work itself; agents aren't steered to
    hand decisions to a lead that manages agents.
  • A sender name read from a message is shown as another agent's, never
    as the human.

Checks

  • pnpm typecheck: all packages pass
  • Core tests: 1338 pass, 10 skip, 0 fail (with main merged in)
  • Desktop build and phone type check pass
  • New regression tests: questions (stop drops an unread approval; answer settled at the first reply), tickets (manager note on a waiting ticket, deleting a waiting ticket, session-total costs), team (loops longer than 16, a secret-reading agent as lead)

Questions and approvals
- An answer counts as read the moment Claude starts replying, not when the
  run ends: a crash later can no longer hand an approval over twice.
- Stopping the run that was to read an answer drops it, so no later turn
  is told "Do it now" for a step the human stopped (queued messages that
  take over still carry it).
- A continued run whose own note already carries the answer doesn't get a
  second copy; a lost session's retry keeps it.
- A reply sent while the agent is still asking waits a moment and counts
  as the answer (chat, ticket, Slack/Telegram/Teams owner).
- A follow-up in a platform chat that asks a question posts its answer once.
- An automation's reminder replaces the earlier notice, so answering
  settles it.

Tickets
- A manager's note no longer leaves a waiting ticket in progress for good;
  its notes count per ticket and belong to no run of the ticket.
- Cancelling a waiting coding ticket's follow-up delivers it like a run's
  end: push and pull request.
- A follow-up an earlier run set is cancelled once a later run finished
  the work, instead of keeping the ticket waiting.
- Deleting a waiting ticket no longer delivers it on the way out.
- Ticket cost counts each run's own cost: runs from before the
  session-cost fix only count what they added to the chat's session.
  Totals are added up again once, and after a restore (with who filed the
  ticket and why it is blocked).
- The reply box drops its "Sending…" row once sent; the phone stops
  saying "Working on it" for tickets that wait.
- "Open the pull request" is recorded once, not every round.

Team
- The handoff card follows exactly the run its result names.
- A continued run that waits for a free slot stays "queued"; Activity's
  live list and follow-ups count running runs only.
- Reporting loops are found however long the line.
- "On its plate" shows waits for Claude's usage limit (runs list their
  pause).
- Any stop by the human clears "Last run failed" (chat, board, platform,
  a paused run).
- An agent can't set a lead that reads secrets or controls the computer
  when it couldn't hand that agent work itself; agents aren't steered to
  hand decisions to a lead that manages agents.
- A sender name read from a message is shown as another agent's, never
  as the human.
# Conflicts:
#	packages/core/src/runner/runner.ts
@danielehrhardt
danielehrhardt merged commit d2ebe65 into main Oct 4, 2026
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