Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
2dd45e4
feat(api): add starting session state
Sep 15, 2026
7e0797f
feat(tui): support starting session state in ui
Sep 15, 2026
8f87b94
feat(chat): handle SessionState::Starting in queue and session logic
Sep 16, 2026
a6add15
feat(agents): initialize spawned sessions in Starting state with work…
Sep 16, 2026
bcbb1d2
feat(tools): support Starting state and grace period
Sep 16, 2026
5cf802b
upd
Sep 16, 2026
b159df2
feat(engine): add cat_line_ranges_enabled setting
Sep 16, 2026
b6b3ba0
feat(gui): add cat_line_ranges_enabled switch
Sep 16, 2026
ed7477b
fix(tool_cat): enforce cat_line_ranges_enabled setting
Sep 16, 2026
645911c
feat(engine): add task_agent_max_retries setting
Sep 16, 2026
d315bc1
feat(gui): add task_agent_max_retries setting to TrajectorySettingsPanel
Sep 16, 2026
812e334
feat(engine): implement retry_count on BoardCard
Sep 16, 2026
70cbcfb
feat(engine): add retry loop for task agent streaming errors
Sep 16, 2026
846c8be
upd windows build
Sep 17, 2026
bc6c692
upd
Sep 17, 2026
d945234
fix(monitor): prevent premature card failure in error state handling
Sep 17, 2026
c8cec29
test(spawn): add smoke test marker file
Sep 17, 2026
547b773
test(smoke-test): add artifact for live spawn/wait verification
Sep 17, 2026
34e2e6b
fix(classifier): include Idle session state in grace period
Sep 17, 2026
ec2e8a7
fix(chat): solve context compression instability and 'Unknown error' …
Sep 19, 2026
6072d21
docs(build): add Windows build guide for GUI, engine, and VS Code ext…
Sep 19, 2026
5ada3d1
feat(chat): reset auto-compression cap on model or context switch
Sep 19, 2026
4fe9684
feat(gui): dynamic context window adaptation on model switch
Sep 19, 2026
189d858
upd build info
Sep 19, 2026
64f6a93
feat(subagent): extend model slots with model_2 and task_planner
Sep 19, 2026
90b76de
chore: bump version to 8.6.5 across manifests
Sep 19, 2026
719c9ff
build(vscode): full windows release and vsix package
Sep 20, 2026
72a8168
chore: update version references to 8.6.5 in release notes and tests
Sep 20, 2026
870fa26
refactor(engine): remove speech recognition
Oct 1, 2026
04a4a72
refactor(gui): remove speech recognition UI
Oct 2, 2026
af5586d
test(gui): fix 7 pre-existing lint errors blocking CI
Oct 2, 2026
6340bf6
test(gui): make CSS-source assertions CRLF-agnostic
Oct 2, 2026
48a1fe1
test(gui): make number-format assertions locale-independent
Oct 2, 2026
625956e
fix(retry): classify engine stall, context-cap, cancellation and empt…
Oct 2, 2026
4923352
fix(tasks): add missing retry_count to BoardCard test fixtures
Oct 2, 2026
e1ea27c
fix(chat): scale stream idle timeout by prompt size
Oct 2, 2026
4cb388d
feat(chat): expose the effective compression cap, estimate and source
Oct 2, 2026
3986de3
feat(chat): expose compression gate diagnostics in runtime state
Oct 2, 2026
13a77ca
feat(engine): add universal tool-call loop guard core
Oct 2, 2026
11c71f4
fix(chat): never wedge a chat in a permanent compression state
Oct 2, 2026
c30fe9d
feat(engine): add cat line-range-insensitive loop-guard identity
Oct 2, 2026
3ba2873
fix(chat): clamp idle timeout to the total backstop and scale it only…
Oct 2, 2026
6eb2144
feat(chat): surface start_stream refusals and bound the queue wait no…
Oct 2, 2026
81bfa6d
feat(build): add fast build script and Windows environment setup
Oct 2, 2026
9683a06
feat(engine): wire the tool-call loop guard centrally
Oct 2, 2026
4d376da
test(chat): cover the U-4 refusal predicate and queue wait notice
Oct 2, 2026
eba7a02
dev(engine): add a fast engine build script and stop prescribing rele…
Oct 2, 2026
6486793
fix(engine): add missing struct fields to trajectories.rs test fixtures
Oct 2, 2026
b6b5767
fix(engine): clone session_id into the post-tool hook payload
Oct 2, 2026
e39dd05
fix(chat): call Map::insert directly on message.extra
Oct 2, 2026
aa7258c
chore(git): untrack VSCode build artifacts and compiled output
Oct 2, 2026
d9caff7
fix(engine): clear pre-existing compiler warnings
Oct 2, 2026
303f57c
upd
Oct 2, 2026
9cb605a
dev(build): one command builds GUI + engine into a single .vsix
Oct 2, 2026
26d7bf5
fix(build-all): stop the engine job from being killed by a saturated …
Oct 2, 2026
4a26437
fix(build-all): replace Start-Job with Start-Process; the remoting ch…
Oct 2, 2026
a598ab6
upd
Oct 3, 2026
eed15bc
feat(yaml): task_architect mode and nudge contract
Oct 4, 2026
ad81aed
feat(chat-api): agent nudge flag and silent-tail signal contract
Oct 4, 2026
f1656c3
feat(tasks): TeamMember as a full agent-room member
Oct 4, 2026
96528f4
fix(tasks): architect role is sequential against any active peer
Oct 4, 2026
4cf0e98
fix(chat-api): idle watchdog test built an impossible input instead o…
Oct 4, 2026
fc82332
fix(chat): nudge agents that end a turn without a tool call
Oct 5, 2026
c2f12a8
feat(tasks): agent rooms with parallel members
Oct 5, 2026
6681d4c
fix(chat): agent_nudge_enabled belongs to ThreadParams, not Trajector…
Oct 5, 2026
6bca777
fix(monitor): notify the agent itself and make escalation non-silent
Oct 5, 2026
34c685a
feat(chat): fresh per-turn room roster for members
Oct 5, 2026
70c2b89
fix(yaml): task_architect prompt was missing its Buddy identity line
Oct 5, 2026
496639d
feat(chat): carry message provenance for room attribution
Oct 5, 2026
50a445a
feat(buddy): allow speaking into a live agent chat
Oct 5, 2026
3a39c2d
feat(gui): show agent room members on task cards
Oct 5, 2026
c74601b
feat(tasks): free room roles driven by agent definition, not by role …
Oct 5, 2026
8e5b6e9
feat(gui): per-agent message separators and exact timestamps
Oct 5, 2026
02ffbb5
feat(buddy): planner question backstop and room-wide agent messages
Oct 5, 2026
43f586f
feat(tasks): create_room tool staffs a card from user-defined subagents
Oct 5, 2026
d4ce564
feat(tools): register create_room in engine tools and task_architect …
Oct 5, 2026
077f500
upd
Oct 5, 2026
1a57cd9
fix(engine): resolve compiler type errors in backstop runner and crea…
Oct 5, 2026
fb1553d
docs: update README with agent rooms, buddy interjections, and silent…
Oct 5, 2026
13d11c3
feat(gui): restore single agent badge, make room member badges and ca…
Oct 5, 2026
301714c
feat(engine): add agent_registry tool for planner (R-3)
Oct 6, 2026
62a3fec
feat(tasks): honest room slot claiming and Primary Owner promotion pr…
Oct 6, 2026
d513a82
fix(tasks): propagate worktree branch, path, and name in claim_room_s…
Oct 7, 2026
46420f2
feat(tasks): multi-finish protocol for rooms (R-2)
Oct 7, 2026
c1a6362
feat(tasks): check_agents and monitor room member awareness (R-4)
Oct 7, 2026
cc5c508
feat(tasks): enhance room member management and UI in TaskWorkspace
Oct 7, 2026
1e28a6b
fix(rooms): resolve agent_message peer routing and provenance for roo…
Oct 8, 2026
45bb266
feat(engine): strip reasoning from prompt with ThreadParams (default …
Oct 8, 2026
65afe93
feat(gui): add strip reasoning from prompt toggle in chat settings (T-2)
Oct 8, 2026
8fe1009
upd
Oct 8, 2026
8f957a1
fix(gui): fix reasoning toggle stuck-on from stale closure
Oct 8, 2026
c8b12dd
fix(gui): surface hidden mutation errors in memory inbox
Oct 8, 2026
21ce979
chore: update version to 8.7.2 across documentation and configuration…
Oct 8, 2026
adabdb3
feat(buddy): add dismiss functionality to speech bubble and update re…
Oct 9, 2026
61ff6f3
upd
Oct 9, 2026
1226b3c
upd
Oct 9, 2026
ed94f2f
feat(dashboard): enable delete popover for task items
Oct 9, 2026
88d8cbc
chore: update version to 8.7.4 across documentation and configuration…
Oct 9, 2026
a7071a9
feat(engine): implement cascade task deletion logic
Oct 9, 2026
e0f75b4
upd
Oct 10, 2026
7c5c983
fix(mermaid): retain height and enable html labels
Oct 10, 2026
0feee19
chore: update version to 8.7.6 across documentation and configuration…
Oct 10, 2026
d20bc61
fix(engine): surface subagent trajectory steps in the child chat view
Oct 11, 2026
c676636
fix(verifier): decouple review concerns and missing commands from Ver…
Oct 11, 2026
fede322
feat(engine): stamp created_at_ms on chat messages
Oct 11, 2026
53e8dd4
feat(merge-agent): add bypass_verifier override
Oct 11, 2026
13f28d6
fix(tasks): idempotent mark_done + custom verify command (T-4)
Oct 11, 2026
1cf8a3b
fix(tasks): propagate already_done in mark_done response and harden t…
Oct 11, 2026
5b22835
feat(gui): universal message timestamps via RoomAttributionFrame (T-6)
Oct 11, 2026
b8bec4f
fix(chat): resume system auto-continue/retry after stream drop & clea…
Oct 11, 2026
dee3fe7
chore: update version to 8.7.7 across all relevant files and remove L…
Oct 12, 2026
b45832c
feat(gui): visual attribution polish (T-8)
Oct 12, 2026
80a5082
feat(gui): relocate message footer actions and usage counters to head…
Oct 12, 2026
1e0b086
feat(gui): horizontally mirror user message attribution frame (T-10)
Oct 13, 2026
ba1b7d8
feat(gui): revert user mirroring & bridge VS Code theme variables (T-11)
Oct 13, 2026
dc14d29
feat(gui): high-contrast text selection highlight for light and dark …
Oct 13, 2026
018aa1d
feat(engine): allow transform apply in any state
Oct 15, 2026
d0d441b
feat(gui): surface transform apply errors in popover
Oct 15, 2026
81434bf
fix(agent_wait): wake one waiter per agent update
Oct 15, 2026
d6a23a4
chore: remove test_out.txt artifact
Oct 15, 2026
82b1787
fix(reasoning-filter): default OFF + stateful API invalidation (T-5)
Oct 15, 2026
a6f6395
fix(gui): prevent mermaid node text clipping
Oct 15, 2026
209cf59
chore: update version to 8.7.8 across documentation and configuration…
Oct 16, 2026
fe7ddf0
style(room-attribution): tune border and tint
Oct 16, 2026
9675942
fix(gui): improve VS Code dark theme contrast
Oct 16, 2026
bd5a410
test(gui): fix 27 pre-existing test failures (locale + cap + fonts)
Oct 17, 2026
7bc168b
fix(gui): improve VS Code dark theme token resolution and tool card s…
Oct 17, 2026
4e0c551
fix(gui): restore token fallbacks, full composer button visibility, a…
Oct 17, 2026
3e0db40
feat(context): add recovery fallback and support 1M context limit
Oct 18, 2026
2877c43
fix(engine): visibility + syntax fixes after T-2 merge
Oct 18, 2026
bea3c5f
Card T-1: Dynamic context limits on model switch (Backend & GUI)
Oct 18, 2026
8ad10f5
fix(engine): deterministic recovery sweep reduces oversized plain-tex…
Oct 18, 2026
d66bb2f
feat(settings): add loop breaker and investigation budget parameters
Oct 18, 2026
72056ee
feat(chat-api): add push mode to NewMessage command
Oct 18, 2026
949dfc4
feat(chat): route user messages to active subagent runners and persis…
Oct 18, 2026
3fec709
feat(gui): expose loop guard and turn budget controls
Oct 19, 2026
59b4861
fix(chat-api): include push field in UserMessage test pattern after T…
Oct 19, 2026
77ef471
feat(engine): add investigation budget and stagnation detector
Oct 19, 2026
c7b1dfd
upd
Oct 19, 2026
65c9383
fix(chat): add missing push field patterns and initializers
Oct 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .github/workflows/agent_engine_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,6 @@ jobs:
cache: "npm"
cache-dependency-path: refact-agent/gui/package-lock.json

- name: Install LLVM (Windows)
if: startsWith(matrix.os, 'windows')
run: choco install llvm -y

- name: Install LLVM (macOS)
if: startsWith(matrix.os, 'macos')
run: brew install llvm

- name: Install build tools
if: runner.os == 'Linux'
run: |
Expand Down
49 changes: 48 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,19 @@ Cargo.lock
# (a gitignored lock let rust-cache pin a bad aws-lc-sys 0.42.0 that build-aborts on CI gcc).
!refact-agent/engine/Cargo.lock

# Alternate cargo target dirs used for parallel/review builds.
# A custom CARGO_TARGET_DIR is not covered by the `target/` rule, so every
# .rlib/.rmeta/.d lands in git status and floods the SCM badge with ~17k entries.
/.cargo-target*/
/.review-target/
**/.cargo-target*/
/**/review-target/
# Keep cargo build output out even if a scratch target dir uses another name.
# These only match dirs that actually hold a cargo build layout, so real source
# dirs named debug/ or release/ are not shadowed.
**/target/debug/
**/target/release/

# Misc
zutils/

Expand Down Expand Up @@ -284,7 +297,7 @@ web_modules/

# Next.js build output
**/.next
**/out
# **/out

# Nuxt.js build / generate output
.nuxt
Expand All @@ -311,6 +324,8 @@ plugins/vscode/out/
plugins/vscode/node_modules/
plugins/vscode/chat_package*/
plugins/vscode/*.vsix
# Compiled engine binaries staged into the extension for local packaging.
# GitHub rejects pushes over 100 MB and these are rebuilt by tools/dev/build.
plugins/vscode/assets/refact*
!plugins/vscode/assets/refact-logo*
plugins/intellij/build/
Expand All @@ -327,6 +342,15 @@ plugins/intellij/src/main/resources/webview/dist/
/refact-*.zip

.playwright-mcp/
# Build/package log dumps captured while packaging the VSCode extension
# (node_modules listings, vsix prepublish output). Regenerate, never commit.
/plugins/vscode/nl.txt
/plugins/vscode/npm_list.txt
/plugins/vscode/pkg_full.txt
/plugins/vscode/pkg_result.txt
# Editor/backup scratch files
.gitignore.bak
*.bak
issue-18.png
ui-audit-*.html
/ui-*.png
Expand All @@ -336,3 +360,26 @@ refact-agent/engine/e2e-*.txt
node_modules

.refact/review_scratch/

# Agent/build scratch output written into the repo root during local builds.
# These are throwaway logs, probes and cargo metadata dumps, not project files.
/.refact_tmp_status.txt
/l1*.txt
/probe*.txt
/gui-baseline-*.txt
/engine-test-build.txt
/*.diff
# cargo metadata / build stderr dumps (never tracked; regenerate with cargo)
/refact-agent/engine/meta.json
refact-agent/engine/*.err
refact-agent/engine/lock_err.txt

# NOTE: a `/CACHEDIR.TAG` pattern is deliberately NOT used here. Git can only
# ignore that single file, not the sibling .rlib/.rmeta/.d files next to it, so
# it would not actually stop the flood. Prefer setting CARGO_TARGET_DIR inside
# `target/` (already ignored) over pointing it at a new directory in the repo root.

# build-all.ps1 generated part scripts, stdout/stderr logs and the GUI sentinel.
# The logs are the only record of a 50-minute build, so they are kept out of git
# but never deleted by the script.
/.build-logs/
1,207 changes: 1,207 additions & 0 deletions .refact_tmp_board.yaml

Large diffs are not rendered by default.

Empty file added .refact_tmp_planner_instr.md
Empty file.
689 changes: 689 additions & 0 deletions .refact_tmp_prev_tail.txt

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .refact_tmp_t4_search.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FILE planner-409071c0-74da-4747-8ad2-6988ecf36d60-2.json total_msgs=469 hit_indices=[371, 373, 375, 385, 388, 389, 391, 394, 396, 398, 400, 402, 404, 405, 409, 411, 413, 421, 424, 436, 438, 445, 447, 455, 463, 467]
FILE planner-409071c0-74da-4747-8ad2-6988ecf36d60-3.json total_msgs=121 hits=[9, 101, 116]
FILE planner-409071c0-74da-4747-8ad2-6988ecf36d60-4.json total_msgs=55 hits=[0, 3, 6, 8, 11, 19, 54]
48 changes: 48 additions & 0 deletions .refact_tmp_usermsg_sites.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
engine\crates\refact-chat-api\src\lib.rs:1200: ChatCommand::UserMessage {
engine\crates\refact-chat-api\src\lib.rs:2191: ChatCommand::UserMessage {
engine\crates\refact-chat-api\src\lib.rs:2216: ChatCommand::UserMessage {
engine\src\chat\goal_monitor.rs:369: .any(|request| matches!(request.command, ChatCommand::UserMessage { .. }))
engine\src\chat\goal_monitor.rs:878: command: ChatCommand::UserMessage {
engine\src\chat\handlers.rs:579: ChatCommand::UserMessage {
engine\src\chat\handlers.rs:1026: command: ChatCommand::UserMessage {
engine\src\chat\handlers.rs:1070: ChatCommand::UserMessage {
engine\src\chat\handlers.rs:1160: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:156: ChatCommand::UserMessage { .. }
engine\src\chat\queue.rs:203: if let ChatCommand::UserMessage {
engine\src\chat\queue.rs:328: if queue[i].priority && matches!(queue[i].command, ChatCommand::UserMessage { .. }) {
engine\src\chat\queue.rs:345: if !queue[i].priority && matches!(queue[i].command, ChatCommand::UserMessage { .. }) {
engine\src\chat\queue.rs:1636: ChatCommand::UserMessage {
engine\src\chat\queue.rs:1803: let text = if let ChatCommand::UserMessage { ref content, .. } =
engine\src\chat\queue.rs:1962: if let ChatCommand::UserMessage {
engine\src\chat\queue.rs:3544: ChatCommand::UserMessage {
engine\src\chat\queue.rs:3849: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4167: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4183: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4212: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4219: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4851: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4868: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4886: queue.push_back(make_request(ChatCommand::UserMessage {
engine\src\chat\queue.rs:4915: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4926: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4937: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4961: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4972: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:4983: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5046: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5057: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5068: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5104: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5244: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5281: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5318: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5329: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5340: command: ChatCommand::UserMessage {
engine\src\chat\queue.rs:5351: command: ChatCommand::UserMessage {
engine\src\chat\session.rs:1674: ChatCommand::UserMessage { .. }
engine\src\chat\session.rs:4307: command: ChatCommand::UserMessage {
engine\src\chat\session.rs:4325: ChatCommand::UserMessage {
engine\src\chat\session.rs:6992: command: ChatCommand::UserMessage {
engine\src\chat\session.rs:7827: command: ChatCommand::UserMessage {
engine\src\chat\session.rs:7882: command: ChatCommand::UserMessage {
engine\src\chat\task_agent_monitor.rs:1077: command: refact_chat_api::ChatCommand::UserMessage {
Loading