Skip to content

Tags: radutopala/loop

Tags

v2026.5.28

Toggle v2026.5.28's commit message
fix(chat): auto-deny ExitPlanMode when user sends free-text from chat…

… input

Previously, when the channel was parked on an ExitPlanMode card and the user
typed a new message and hit Send instead of clicking Approve/Reject/Request
changes, `onDismissCards()` cleared `exitPlanRequest` locally but never
called `POST /api/channels/{id}/plan/resolve`. The backend stayed in
`plannedChannels`, the drain loop bailed at the `IsChannelPlanned` guard,
and all queued messages sat unprocessed — the chat looked frozen.

Route the send through `resolvePlan(channelId, "deny", content, mode)` when
the card is active, mirroring the existing `pendingGateReqId` pattern. The
deny path inserts the user's text as a priority-bumped continuation, clears
the park flag, and resumes the drain.

v2026.5.27

Toggle v2026.5.27's commit message
docs: document Docker Agent session modes, Shift+Enter, and external …

…link routing

v2026.5.26

Toggle v2026.5.26's commit message
fix(orchestrator): guard prepareAgentRequest against deleted channel

GetChannel returns (nil, nil) when the row is missing (sql.ErrNoRows).
prepareAgentRequest only checked err, so a triggered message whose
channel was deleted mid-flight panicked on `channel.ParentID`. Drop
the redundant `channel != nil` check on the worktree branch now that
nil is rejected at the top.

Hit intermittently in CI: when the test-runner container fails to
build the agent image (no docker in PATH), the resulting partial state
left a triggered row whose channel had already been swept, and the
next drain crashed the daemon before any BDD scenario could connect.

v2026.5.23

Toggle v2026.5.23's commit message
fix(chat): hide 'Compacted context' marker while compacting is in flight

The agent.activity event fires once when compacting starts, but the FE was
immediately appending a kind=compacting timeline item — rendering the
past-tense "Compacted context" stamp above the still-active "Compacting
context..." indicator. Suppress the trailing marker while
agentActivity.activity === "compacting"; it reappears once the activity
transitions away.

v2026.5.22

Toggle v2026.5.22's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
test: fix cross-platform paths in dockerproxy and githubapi suites (#27)

On macOS sockaddr_un.sun_path caps unix socket paths at 104 bytes, so
t.TempDir() under /var/folders/... routinely fails `bind: invalid
argument`. Add a `shortSockPath` helper in server_test.go that allocates
under /tmp via os.MkdirTemp and use it across server/app/hijack tests.

The githubapi exec-runner tests hardcoded `/bin/true` and `/bin/false`,
which don't exist on macOS (the binaries live under /usr/bin). Resolve
them via exec.LookPath and skip if absent.

v2026.5.21

Toggle v2026.5.21's commit message
feat(scheduler): reset stale running tasks on daemon startup

The defer-based release in executeAndLog doesn't fire if the daemon is
killed (OOM, SIGKILL, crash), leaving rows flagged running=1 and orphaned
task_run_logs in 'running' state — both permanently invisible to
GetDueTasks until manually fixed. Run a one-shot sweep before the poll
loop starts to finalize orphan logs and clear stuck running flags.

v2026.5.20

Toggle v2026.5.20's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(header): show channel/thread ID with label next to dir path (#22)

* feat(header): show channel/thread ID with label next to dir path

Adds a labeled "Channel ID:" / "Thread ID:" segment between the dir path
and session info in ChannelHeaderInfo, following the same separator and
double-click-to-copy pattern as the surrounding fields. The label
disambiguates threads (which have parent_id set) from channels.

* fix(header): scope ID double-click selection to the ID only

Move the onDoubleClick / title handlers off the label so the visual
selection no longer covers "Channel ID:" / "Thread ID:" text. The
highlighted region now matches the clipboard contents (just the id).

* feat(header): replace ID label with #/thread-icon prefix

Drop the verbose "Channel ID:" / "Thread ID:" prefix in favor of a `#`
glyph for channels and a chat-bubble icon for threads, mirroring the
Slack/Discord convention. Tooltip and double-click-to-copy behavior
unchanged.

* feat(header): add Claude icon before session, git-commit icon before commit