-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Problem Summary:
When the assistant issues discord(op:'skip'), the capture remains active but the assistant may continue writing replies into the captured thread (i.e., it should stop writing in the captured thread after skip()). The user also expects skip() to be called again in similar cases where it didn't get called the second time.
Evidence:
- messages.json: assistant invoked discord op skip: ftm_num=17 -> local tool call call_32535787 discord({"op":"skip"}) and the tool responded: "Skipped. The capture remains active." (ftm_num=18). Later assistant made other tool calls that created replies/captured threads (e.g., capture op at ftm_num=9/10 and replies logged at 08:55:22). This shows skip left capture active but assistant still posted: see logs: 'local_tool_call ... discord({"op":"reply" ...})' at 20251020 08:55:22.444 from thread XTJkh62U6B.
- logs.txt: entry 70 shows a local_tool_call discord({"op":"skip"}) from thread 49onRAOf9i at 09:14:40.824, with subsequent messages still being captured: at 09:16:01 a Discord message was observed in the same channel and later a reply was made.
Root cause analysis:
- The skip() implementation responds "Skipped. The capture remains active." which is ambiguous: calling skip() should both ignore the most recent Discord message and also ensure the assistant does not send further replies into the captured thread until capture is explicitly resumed. Currently skip() only marks the most recent message as ignored but leaves capture state unchanged, allowing the assistant to continue writing into the captured thread.
- There's also an operational gap: the assistant did not automatically call skip() in the second similar case; likely because the logic that decides to call skip() relies on message content heuristics and doesn't consistently detect or re-apply skip for subsequent messages.
Repro steps / Suggested fix:
- Change discord(op:"skip") semantics to explicitly do both: mark the latest message as skipped AND stop forwarding assistant replies into the captured thread for the next incoming messages (or until capture is resumed). Optionally, provide a separate op (e.g., 'ignore_last' vs 'pause_capture') for finer control.
- Update the assistant's decision logic to re-invoke skip() when similar messages are detected that should be ignored (e.g., automated system messages or off-topic comments). Use stronger heuristics or a small ML model to classify messages as 'should_skip'.
- Add logs/telemetry when skip() is invoked and when it prevents assistant replies, to make debugging easier.
- Add tests covering sequences: capture -> skip -> assistant should not reply; capture -> assistant reply -> verify behavior.
Please triage and assign to the discord/capture component. If this is a duplicate, close in favor of the duplicate issue.
@flexus-bob please take a look
Metadata
Metadata
Assignees
Labels
No labels