Skip to content

feat(settings): add option to delete compact progress on finish - #223

Merged
grinev merged 1 commit into
grinev:mainfrom
renanvignato-tech:feat/delete-compact-progress-on-finish
Sep 4, 2026
Merged

feat(settings): add option to delete compact progress on finish#223
grinev merged 1 commit into
grinev:mainfrom
renanvignato-tech:feat/delete-compact-progress-on-finish

Conversation

@renanvignato-tech

Copy link
Copy Markdown
Contributor

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

  • Setting is visible in /settings only when compact output mode is enabled (it has no effect otherwise).
  • When enabled, CompactProgressStreamer.finalize() deletes the progress message via a new optional deleteText callback instead of editing it to the finished summary.
  • Available through INITIAL_SETTINGS_PRESET like the other boolean settings.

Changes

  • src/app/types/settings.ts — new deleteCompactProgressOnFinish field
  • src/app/stores/settings-store.ts — getter/setter + preset validation
  • src/bot/menus/settings-menu.ts — new toggle button (compact mode only)
  • src/bot/callbacks/settings-callback-handler.ts — callback handling
  • src/bot/streaming/compact-progress-streamer.ts — optional deleteText + delete-on-finish path
  • src/bot/services/event-subscription-service.ts — wires deleteText and reads the setting
  • src/i18n/*.ts — label for all 10 locales
  • Tests updated/added for streamer, settings menu, callback handler, and preset

Validation

  • npm run typecheck
  • npm run lint
  • npm test — 1688 tests passed ✅
  • npm run build

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>
@grinev

grinev commented Sep 4, 2026

Copy link
Copy Markdown
Owner

@renanvignato-tech thanks for contribution!

@grinev
grinev merged commit 4b4946d into grinev:main Sep 4, 2026
1 check passed
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>
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.

2 participants