feat(settings): add option to delete compact progress on finish - #223
Merged
grinev merged 1 commit intoSep 4, 2026
Merged
Conversation
Adds a "Delete progress on finish" runtime setting that removes the single compact progress message when the work completes, instead of rewriting it into the "Finished Work / tool calls / changed files" summary. Keeps the chat clean for users who prefer only the final answer. The setting is shown in /settings only while compact output mode is enabled, and is available through INITIAL_SETTINGS_PRESET. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
Owner
|
@renanvignato-tech thanks for contribution! |
rubenperezrial
added a commit
to primigenum/opencode-telegram-bot
that referenced
this pull request
Sep 10, 2026
* feat(i18n): add Korean locale (grinev#211) Co-authored-by: ashcastle <ashcastle@users.noreply.github.com> * fix(bot): retry transient Telegram server errors instead of dropping responses (grinev#196) * fix(telegram): prevent duplicate messages after transient errors * feat(bot): allow /opencode_stop during an active request * feat(voice): show recognized text as a quote * fix(logger): stop console writes after EPIPE to prevent crash loop (grinev#209) Co-authored-by: Iago Durán Romera <iagorobo24-hub@users.noreply.github.com> * chore: strict tsconfig (grinev#212) * feat(telegram): raise stream edit interval on long runs to avoid 429 * chore(release): v0.24.1 * feat(docker): add containerized deployment (grinev#213) Co-authored-by: Iago Durán Romera <iagorobo24-hub@users.noreply.github.com> * feat(docker): add Desktop compose and in-container command warnings * feat(OTB-63): switching to a session adopts the agent, model and variant it last ran with Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(OTB-62): picking a model opens the variant picker when the model offers a choice * chore: gitignore updated * feat(bot): accept incoming Telegram rich formatted messages * feat(bot): accept incoming Telegram rich formatted messages * feat(status): show bot version in /status * chore: update e2e screenshots dir * fix(subagent): stop replaying finished subagent runs in later messages * feat: add PROJECTS_EXCLUDED_PATHS to hide unwanted projects from /projects (grinev#197) Co-authored-by: Johell1NS <alessio.perilli@me.com> * fix(OTB-59): diff file attachments open as readable UTF-8 text (grinev#221) * chore(release): v0.25.0 * feat(OTB-69): add local json commands support * feat(settings): add option to delete compact progress on finish (grinev#223) * fix(queue): support voice and media prompts (grinev#219) Signed-off-by: Mathias L. Baumann <mathias.baumann@frequenz.com> * fix(queue): count rich photos and text files toward the 20 MiB media limit * fix(OTB-54): restore settings from backup in installed mode * fix(OTB-77): do not show command or prompt errors after detach * feat(OTB-74): apply the agent's configured model and variant on pick * feat(OTB-75): show the subagent variant on the Model line * feat(OTB-78): show the variant beside the model on /status and the pinned dashboard * chore(release): v0.25.1 * test: install the model-selection mock the merge dropped The session/message command tests define getStoredModelMock but the vi.mock registration for model-selection-service was lost while resolving the sync conflicts. The tests then read the real getStoredModel, which is environment-dependent (local .env vs CI defaults), so the keyboard model assertions failed on CI while passing locally. --------- Signed-off-by: Mathias L. Baumann <mathias.baumann@frequenz.com> Co-authored-by: AshCastle <119788134+ashcastle@users.noreply.github.com> Co-authored-by: ashcastle <ashcastle@users.noreply.github.com> Co-authored-by: Haochen <38915833+hcsum@users.noreply.github.com> Co-authored-by: Ruslan Grinev <grinevruslan@gmail.com> Co-authored-by: Iago Durán Romera <iagorobo24@gmail.com> Co-authored-by: Iago Durán Romera <iagorobo24-hub@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Johell1NS <78345296+Johell1NS@users.noreply.github.com> Co-authored-by: Johell1NS <alessio.perilli@me.com> Co-authored-by: Renan Rodrigo Vignato <renanvignato@gmail.com> Co-authored-by: Mathias L. Baumann <Marenz@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new runtime setting "Delete progress on finish" (
deleteCompactProgressOnFinish) that removes the single compact-progress message when the work completes, instead of rewriting it into the "Finished Work / tool calls / changed files" summary.For users who prefer a clean chat (send message → final answer), this keeps the compact output mode's benefits (one progress message, no per-tool spam) without leaving the summary behind.
Behavior
/settingsonly when compact output mode is enabled (it has no effect otherwise).CompactProgressStreamer.finalize()deletes the progress message via a new optionaldeleteTextcallback instead of editing it to the finished summary.INITIAL_SETTINGS_PRESETlike the other boolean settings.Changes
src/app/types/settings.ts— newdeleteCompactProgressOnFinishfieldsrc/app/stores/settings-store.ts— getter/setter + preset validationsrc/bot/menus/settings-menu.ts— new toggle button (compact mode only)src/bot/callbacks/settings-callback-handler.ts— callback handlingsrc/bot/streaming/compact-progress-streamer.ts— optionaldeleteText+ delete-on-finish pathsrc/bot/services/event-subscription-service.ts— wiresdeleteTextand reads the settingsrc/i18n/*.ts— label for all 10 localesValidation
npm run typecheck✅npm run lint✅npm test— 1688 tests passed ✅npm run build✅