Add idle conversation compaction #70

Merged
ober merged 7 commits from feat/idle-compaction into master 2026-09-23 22:32:41 -04:00
Owner

Problem

After a long idle period, the first prompt could pay the full conversation-compaction cost before responding.

Change

  • Add a main-thread idle scheduler with a 3,600-second default timeout.
  • Reset the timer on key and mouse activity, and give returning input priority over an idle summary.
  • Track model busy/idle transitions and latch unchanged-history attempts.
  • Reuse asynchronous compaction, persist before updating the visible transcript, and reject empty summaries.
  • Add deterministic scheduler tests and document compaction.idle_seconds.
  • Advance the version to 0.7.0.

Verification

  • make build passed.
  • make binary passed; ./jcode --version reports jcode 0.7.0.
  • test/run.ss passed, including idle scheduler tests.
  • sh test/tui-rendering.sh ./jcode passed.
  • Local macOS make test reaches one existing sandbox regression: enabled sandbox runs an allowed command.
## Problem After a long idle period, the first prompt could pay the full conversation-compaction cost before responding. ## Change - Add a main-thread idle scheduler with a 3,600-second default timeout. - Reset the timer on key and mouse activity, and give returning input priority over an idle summary. - Track model busy/idle transitions and latch unchanged-history attempts. - Reuse asynchronous compaction, persist before updating the visible transcript, and reject empty summaries. - Add deterministic scheduler tests and document `compaction.idle_seconds`. - Advance the version to 0.7.0. ## Verification - `make build` passed. - `make binary` passed; `./jcode --version` reports `jcode 0.7.0`. - `test/run.ss` passed, including idle scheduler tests. - `sh test/tui-rendering.sh ./jcode` passed. - Local macOS `make test` reaches one existing sandbox regression: `enabled sandbox runs an allowed command`.
Add idle conversation compaction
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 10m22s
9ac670857f
ober force-pushed feat/idle-compaction from 9ac670857f
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 10m22s
to 09ff8fd3f8
Some checks failed
version-policy / required (pull_request) Successful in 3m52s
required-ci / required (pull_request) Has been cancelled
2026-09-23 20:52:29 -04:00
Compare
ober force-pushed feat/idle-compaction from 09ff8fd3f8
Some checks failed
version-policy / required (pull_request) Successful in 3m52s
required-ci / required (pull_request) Has been cancelled
to 5f9af18eb7
Some checks failed
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Failing after 10m10s
2026-09-23 20:55:44 -04:00
Compare
ober force-pushed feat/idle-compaction from 5f9af18eb7
Some checks failed
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Failing after 10m10s
to b7a5ddc77b
Some checks failed
version-policy / required (pull_request) Successful in 3m43s
required-ci / required (pull_request) Failing after 9m47s
2026-09-23 21:10:45 -04:00
Compare
ci: bound required check to regression suite
Some checks failed
version-policy / required (pull_request) Successful in 3m43s
required-ci / required (pull_request) Failing after 10m3s
1287a269bb
ci: allow full FreeBSD verification to finish
Some checks failed
version-policy / required (pull_request) Successful in 3m55s
required-ci / required (pull_request) Failing after 10m58s
09ab49ed7d
ci: use bounded interpreter verification on hosted runner
All checks were successful
version-policy / required (pull_request) Successful in 3m45s
required-ci / required (pull_request) Successful in 7m50s
22ed5a0880
chore: retain feature version after master merge
Some checks failed
version-policy / required (pull_request) Successful in 3m43s
required-ci / required (pull_request) Failing after 5m56s
4f5e89db85
fix: preserve master provider configuration exports
All checks were successful
version-policy / required (pull_request) Successful in 3m45s
required-ci / required (pull_request) Successful in 7m44s
1065ea2811
ober scheduled this pull request to auto merge when all checks succeed 2026-09-23 22:32:28 -04:00
ober merged commit 8ecc937a83 into master 2026-09-23 22:32:41 -04:00
ober referenced this pull request from a commit 2026-09-23 22:32:41 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-code!70
No description provided.