Commit d72066a
authored
fix: harden workflows, configuration, and desktop UX (#246)
## Related Issue
N/A — maintainer-directed hardening batch.
## Problem
Several agent, configuration, desktop, and Web paths still had
reliability or presentation gaps. Dynamic Workflow could lose truthful
progress or recovery details after partial failures and used different
subagent-selection paths across entry points. Configuration saves could
expose transient reads, desktop launches could use the wrong executable
order, and installer and tool-row presentation remained inconsistent.
## What changed
- Route Dynamic Workflow, Tower, and Session Init through the shared
subagent spawn planner; validate routing inputs and preserve
created-child recovery details.
- Keep configured workflow capacity authoritative during rate limits,
frame child results safely, and recover truthful row counts and statuses
from partial events.
- Keep built-in prompts free of clock-derived text while preserving
`${now}` for custom templates; stabilize configuration reads and
validate Dynamic Workflow environment overrides.
- Use login-shell executable order for desktop-launched tools and brand
the macOS DMG with a drag-to-Applications layout.
- Align Web tool icons and completion indicators, preserve distinct
workflow result rows, and rebuild the committed Web bundle.
### Review focus
- Shared subagent selection, forced-policy precedence, fork validation,
cancellation rollback, and binding preservation.
- Rate-limit recovery, startup failures, active-versus-queued
attribution, and partial-result rendering.
- Desktop PATH ordering, DMG packaging, configuration-save stability,
and generated Web asset provenance.
### Verification
- `pnpm test` — 1,231 files and 20,843 tests passed; 12 files and 79
tests skipped; 3 expected failures and 2 todos.
- Final `agent-core-v2` suite — 350 files and 5,855 tests passed.
- Pre-push changed suite — 418 files and 7,147 tests passed; 2 files and
2 tests skipped; 1 todo.
- `pnpm build`, `pnpm typecheck`, and `pnpm lint` passed; lint reports 0
errors and 3,329 existing warnings.
- Docs build, Web asset freshness, Sherif, flake workspace sync,
changeset validation, and diff checks passed.
## Checklist
- [x] I have read the
[CONTRIBUTING](https://github.com/PyModel/pythinker-code/blob/main/CONTRIBUTING.md)
document.
- [x] Related issue: N/A — maintainer-directed hardening batch.
- [x] I have added tests that prove the changes work.
- [x] Ran `gen-changesets`; the existing CLI and desktop patch
changesets cover user-visible changes, with no new breaking change.
- [x] Ran `gen-docs`; custom-template compatibility and Dynamic Workflow
controls are documented, and the docs build passed.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added dynamic workflow concurrency controls through configuration and
environment settings.
* Improved subagent spawning, cancellation, recovery, and progress
tracking.
* Desktop tools now use the login shell’s executable path order.
* **Bug Fixes**
* Fixed tool-call icons and completion indicators appearing misaligned.
* Preserved models and providers while configuration files are being
saved.
* Improved recovery of partially completed workflow results.
* Added safer handling for encoded workflow output and file updates.
* **Style**
* Updated macOS installer branding and layout.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->1 parent df238bd commit d72066a
160 files changed
Lines changed: 2000 additions & 965 deletions
File tree
- .changeset
- apps
- desktop
- build
- tests
- pythinker-code/dist-web
- assets
- pythinker-web
- src
- components/chat
- tool-calls
- lib
- test
- docs
- configuration
- reference
- packages
- agent-core-v2
- docs
- src
- _base/execEnv
- agent
- profile
- tools/agent
- app/agentProfileCatalog
- features
- dateChange
- dynamic_workflow
- session
- tools/agent-dynamic_workflow
- sessionInit
- tower/tools/spawn
- persistence/backends/node-fs
- session/subagent
- test
- _base/execEnv
- agent
- fullCompaction
- loop
- profile
- app
- agentProfileCatalog
- config
- features
- dateChange
- dynamic_workflow
- sessionInit
- tower/tools
- harness
- persistence/backends/node-fs
- session/subagent
- tool
- workspace/workspaceAgentProfileLoader
- agent-gateway/test
- node-sdk/test
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
| |||
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
83 | | - | |
| 84 | + | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
88 | | - | |
| 89 | + | |
89 | 90 | | |
90 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
91 | 106 | | |
92 | 107 | | |
93 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
135 | 137 | | |
136 | 138 | | |
137 | 139 | | |
138 | | - | |
139 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
140 | 156 | | |
141 | 157 | | |
142 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
143 | 173 | | |
144 | 174 | | |
145 | 175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments