Skip to content

Commit 50f1437

Browse files
authored
fix: refine chat navigation and goal reliability (#186)
## Related Issue No linked issue. These are maintainer-directed UI and goal reliability fixes. ## Problem The conversation outline was difficult to scan and use with a keyboard. Thinking controls could be hidden inside a long model menu, and the output copy-path action blended into its card. Separately, a running goal could repeatedly cancel automatic context compaction. The goal continuation driver did not know that compaction was active, so it could start more turns instead of waiting for compaction to finish. ## What changed - Show user prompts as a connected timeline beside the sidebar, with roving keyboard focus and active-item visibility. - Separate model selection from thinking-effort selection in the composer, move the prompt-anchor toggle to Lab, and make output copy-path actions visually distinct. - Pause active goals when automatic compaction starts without aborting the live compaction task. - Resume the same goal only after compaction succeeds, while preserving manual pause/cancel, budget, restart, replay, and duplicate-launch safeguards in both engines. - Show the compaction pause reason through the existing TUI goal status panel, update the in-app design-system reference, and keep the shipped web bundle synchronized. ## Verification - `pnpm --filter @pymodel/agent-core test` — 4,171 passed; 3 expected failures; 30 skipped; 1 todo. - `pnpm --filter @pymodel/agent-core-v2 test` — 5,661 passed. - `pnpm exec vitest run apps/pythinker-code/test/tui/components/messages/goal-markers.test.ts` — 10 passed. - `tsc` and `tsgo` passed for `agent-core` and `agent-core-v2`; v2 import-boundary checks passed. - `pnpm --filter @pymodel/pythinker-web test` — 984 passed on the UI commit. - `pnpm lint` — 0 errors; existing warnings only. - `pnpm run check:web` — 670 entries; source fingerprint `0350a3766f66`. - `pnpm exec changeset status --since origin/main` — one patch release for `@pymodel/pythinker-code`. - Independent identifier and scope audits — no findings. ## Checklist - [x] I have read the [CONTRIBUTING](https://github.com/PyModel/pythinker-code/blob/main/CONTRIBUTING.md) document. - [x] No related issue is required for these maintainer-directed fixes. - [x] I have added tests that prove the fixes work. - [x] Ran `gen-changesets`; this PR includes four approved patch changesets. - [x] No separate guide update is needed; compaction recovery is automatic and its pause reason is visible in the TUI. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a dedicated thinking-effort control in the chat composer, separate from model selection. * Redesigned chat prompt anchors as a keyboard-navigable timeline beside the sidebar. * Improved copy-path action visibility with a secondary button style and copy icon. * Added automatic pausing and resuming of active goals around context compaction. * **Bug Fixes** * Improved goal handling when compaction fails, is interrupted, or exceeds limits. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 283020c commit 50f1437

127 files changed

Lines changed: 2710 additions & 1146 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Make task output copy-path actions visually distinct.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Fix chat prompt anchors to use a connected timeline beside the sidebar with keyboard navigation.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Fix the chat composer so model and thinking-effort menus open separately.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@pymodel/pythinker-code": patch
3+
---
4+
5+
Pause active goals during automatic context compaction and resume them after compaction succeeds.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"sourceHash": "e1ec8020bf8a5083eab958fc73dfc62f814cd5bf40dedb48005b63fc18c9634b",
2+
"sourceHash": "3a46f9dff05369ad09252708dcc377f6495aadcb00e6bcea32130261bd380df2",
33
"sourceFileCount": 399
44
}

apps/pythinker-code/dist-web/assets/CodeBlockNode-Dky7odcN.js renamed to apps/pythinker-code/dist-web/assets/CodeBlockNode-MfYCmbBp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/DesignSystemView-C3c2Sx-Q.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/DesignSystemView-Drz2kLo0.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

apps/pythinker-code/dist-web/assets/DesignSystemView-Dx7CRpgX.js

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/pythinker-code/dist-web/assets/DesignSystemView-DzHBvWAf.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)