Commit Graph

6956 Commits

Author SHA1 Message Date
Bin Jin 5de3db146a fix(nix): remove build-time Bun closure reference 2026-08-13 16:38:23 +08:00
can1357 8b0f400d3c chore: bump version to 17.3.0 2026-08-13 08:28:43 +02:00
can1357 a69d166e00 perf(discovery): memoized WSL host-home probe per environment
- Deduplicated the re-imported changelog bullets from the PR #8403 merge,
  keeping the condensed register with only the new #8402 entry.
- getUserHomeCandidates memoizes the WSL home candidate keyed by
  platform + WSL markers + USERPROFILE, so a wedged interop pipe costs
  one bounded probe per process instead of one 500ms stall per
  discovery loader, while env changes (tests, SDK embeddings) still
  recompute.
2026-08-13 06:51:35 +02:00
can1357 b47e3e8e35 Merge PR #8403: fix(discovery): bound WSL host-home probe with a hard timeout (@roboomp) 2026-08-13 06:49:19 +02:00
can1357 cd72f22552 fix(lsp): restored overwritten rename target when move fails
- Displace overwritten destination into a temporary sibling directory during workspace renames.
- Restore the displaced file and clean up the temp directory if the main rename operation fails.
2026-08-13 06:05:20 +02:00
roboomp 4561bdc39a fix(discovery): bound WSL host-home probe with a hard timeout
resolveWindowsUserProfile() ran Bun.spawnSync(cmd.exe echo %USERPROFILE%)
with no timeout during startup discovery. When the WSL->Windows interop
pipe is wedged, cmd.exe never returns and the synchronous spawn blocks
the JS thread forever, so the TUI never paints and no log is written.

Route both best-effort probes (cmd.exe and wslpath) through a shared
runHostProbe() helper that spawns under a 500ms hard timeout with SIGKILL
and reports a killed/non-zero exit as "host home unavailable", so
discovery falls back to the Linux $HOME/~/.omp candidates instead of
hanging.

Fixes #8402
2026-08-13 03:52:31 +00:00
can1357 fc1fd664b9 chore(changelog): rewritten 2026-08-13 05:51:01 +02:00
can1357 0af778ea54 Merge PR #8392: fix(lsp): isolate document overlays across sessions (@roboomp) 2026-08-13 05:48:27 +02:00
can1357 d8924d055b Merge PR #8399: fix(lsp): synchronize applied workspace edits (@roboomp) 2026-08-13 05:48:27 +02:00
can1357 2e6d81b528 Merge PR #8395: fix(lsp): roll back rename_file edits when the move fails (@roboomp) 2026-08-13 05:48:00 +02:00
can1357 e3771992a7 Merge PR #8396: fix(lsp): abort rename_file when willRenameFiles fails on a supporting server (@roboomp) 2026-08-13 05:47:21 +02:00
can1357 3bc181d042 Merge PR #8393: fix(lsp): preserve workspace resource options (@roboomp) 2026-08-13 05:46:42 +02:00
can1357 926228a821 Merge PR #8394: fix(lsp): reject unsupported rust-analyzer snippet edits (@roboomp) 2026-08-13 05:46:37 +02:00
can1357 c4bc106486 Merge PR #8397: fix(lsp): fail diagnostics when every applicable server fails (@roboomp) 2026-08-13 05:46:31 +02:00
can1357 3d9649fbfa Merge PR #8391: fix(lsp): correct workspace edit failure handling (@roboomp) 2026-08-13 05:46:26 +02:00
roboomp fb5c852384 fix(lsp): synchronized applied workspace edits
Reconciled open document overlays and watched files after committed WorkspaceEdits so later semantic requests observe disk state.

Fixes #8372
2026-08-13 03:13:00 +00:00
can1357 a53e4e790d feat(coding-agent/modes): introduced fullscreen agents hub and creation flow
- Replace the obsolete agent dashboard control center with a new fullscreen agents hub component.
- Integrate AI-assisted agent creation architect flow using model sessions.
- Provide interactive property strips and model browser integration for agent configuration.
- Update tests and documentation to support the redesigned agents hub.
2026-08-13 05:09:58 +02:00
roboomp fc37f20dea fix(lsp): abort rename_file when willRenameFiles fails on a supporting server
The willRenameFiles loop caught every non-abort, non-method-not-found
error into serverNotes and fell through to fs.rename, so a genuine
failure from a server that supports the request moved the path without
its semantic edits, leaving references dangling. Split client acquisition
from the request, track hard failures, and abort before any mutation when
a supporting server errors. Servers replying method-not-found are still
skipped without blocking.

Fixes #8380
2026-08-13 03:07:16 +00:00
roboomp dce0216bcb fix(lsp): fail diagnostics when every applicable server fails
The direct diagnostics loop caught non-abort server errors without recording them, so a file whose every applicable server failed produced an empty aggregate rendered as OK with success: true — a false-negative hiding a total diagnostics failure.

Track per-file and global success/failure counts: zero successful server responses now yields success: false with an explicit failure line, while partial success still surfaces diagnostics and names the servers that failed.

Fixes #8377
2026-08-13 03:07:07 +00:00
roboomp 4a6519f07f fix(lsp): roll back rename_file edits when the move fails
rename_file wrote server-provided reference edits before creating the
destination parent and moving the source, with no rollback. A failed
mkdir/rename (e.g. EXDEV across mounts, EACCES) left the reference files
rewritten while the source stayed put, violating the atomic "moves file
AND rewrites all imports/references" contract.

Extract applyEditsThenRename in lsp/edits.ts: snapshot each edited file,
apply edits, then mkdir+rename; on failure restore every snapshot before
rethrowing. Rewire the rename_file handler to build the summary and hand
the edits to the helper.

Fixes #8379
2026-08-13 03:05:29 +00:00
roboomp ec7b6ed85c fix(lsp): rejected unsupported snippet text edits
Stopped advertising rust-analyzer snippet edit support and reject unexpected snippet-formatted edits before source is written.

Fixes #8376
2026-08-13 03:04:35 +00:00
roboomp f6e2b6c2e1 fix(lsp): preserved workspace resource options
Propagated CreateFile, RenameFile, and DeleteFile options through workspace edit planning and enforced their overwrite, ignore, and recursive semantics during execution.

Fixes #8373
2026-08-13 03:04:31 +00:00
roboomp 757066e965 fix(lsp): isolated document overlays across sessions
Assigned concurrent mux links separate language-server processes while retaining idle processes for later reuse.

Added regression coverage for session-specific open-document content and updated mux lifecycle expectations.

Fixes #8371
2026-08-13 03:03:36 +00:00
roboomp 448cff19bc fix(lsp): corrected workspace edit failure handling
Advertised abort semantics because multi-file text edits are applied sequentially and cannot satisfy textOnlyTransactional.

Added initialization capability coverage and documented the fix.

Fixes #8375
2026-08-13 03:01:45 +00:00
can1357 e8eed95130 feat(coding-agent): introduced fine grained per agent advisor configuration
- Replaced blanket subagent advisor global settings with fine-grained per-agent configuration and frontmatter support.
- Added dashboard keybindings and inline override editors for managing agent advisor patterns.
- Implemented settings migration logic to convert legacy global options into per-agent settings.
- Updated session persistence and execution layers to restore and enforce per-agent advisor behaviors.
2026-08-13 04:59:50 +02:00
can1357 1132c3e31c feat: implemented anthropic keep-alive and migration support for updates
- Added Anthropic prompt-cache refresh scheduling and state management to keep prompts warm across idle sessions.
- Updated pricing models and database stats tracking to calculate and store cost-weighted cache savings.
- Integrated cache savings metrics and efficiency displays into the stats CLI, dashboard routes, and UI components.
- Added support for package renaming, manifest pointer tracking, and installation migration during CLI updates.
2026-08-13 04:59:33 +02:00
can1357 b60bef961c feat: introduced nix packaging and path-based binary resolution
- Add comprehensive Nix flake definitions, derivations, modules, and CI workflows.
- Update tests and executables to resolve binaries from PATH rather than absolute paths.
- Ensure byte reproducibility and zeroed timestamps in embedded dashboard archives.
- Add handling for Nix-managed installations in CLI update checks.
2026-08-13 03:52:47 +02:00
can1357 3e28a1afb4 feat(coding-agent): implemented threshold for demoting interrupted thinking
- Added a 60-character minimum length threshold for demoting interrupted thinking into hidden continuity context in agent-session.ts.
- Updated LLM message conversion in messages.ts to strip incomplete thinking from user-interrupted assistant turns regardless of continuity note presence.
- Added test coverage in agent-session-interrupted-thinking.test.ts verifying behavior for reasoning lengths below and at the threshold.
2026-08-13 02:16:08 +02:00
can1357 2f68fa6ebe feat(coding-agent): reframed interrupted thinking prompt template
- Reframe interrupted-thinking prompt template to present preserved text as a natural user interruption.
- Update interrupted thinking session tests to match the new prompt format.
2026-08-13 02:09:09 +02:00
can1357 ad2dee6351 feat(coding-agent): improved title generation quality and accuracy
- Set generation temperature to zero for online title generation to prevent garbled names.
- Update system prompt to instruct exact copying of technical terms and names.
- Reject generated titles containing no word characters to prevent punctuation-only sessions.
2026-08-13 02:07:57 +02:00
can1357 4d73392621 chore: fix changelog 2026-08-13 02:02:23 +02:00
can1357 61e12988fe Merge PR #8283: fix(coding-agent): skip idle mid-turn persistence waits (@ethancawse) 2026-08-13 02:00:50 +02:00
can1357 b70bb7aced Merge PR #8186: feat(lsp): add Astral ty as built-in Python primary LSP server (@FNDEVVE) 2026-08-13 02:00:50 +02:00
can1357 92b1aa9854 Merge PR #8159: fix(coding-agent): lowercase the hindsight project label (@alvorithm) 2026-08-13 02:00:50 +02:00
can1357 c25b008f4a Merge PR #8067: fix(compaction): manual /shake keeps a recent tail of tool results (@zhang17-24) 2026-08-13 02:00:49 +02:00
can1357 3cbb615630 chore: normalized changelog entries after merging open pull requests 2026-08-13 01:23:13 +02:00
can1357 e1039f6a34 Merge PR #8138: fix(coding-agent): interpret inline skill directive in mode-command prompts (@roboomp)
# Conflicts:
#	packages/coding-agent/src/modes/interactive-mode.ts
2026-08-13 01:20:47 +02:00
can1357 2dddba9fe4 Merge PR #8199: fix(coding-agent): gate prompt tool mentions on session tool availability (@szavadsky)
# Conflicts:
#	packages/coding-agent/src/prompts/system/orchestrate-notice.md
#	packages/coding-agent/src/prompts/system/plan-mode-active.md
#	packages/coding-agent/src/prompts/system/project-prompt.md
#	packages/coding-agent/src/prompts/system/system-prompt.md
2026-08-13 01:18:42 +02:00
can1357 193894c8d4 Merge PR #8135: fix(tui): keep large transcript rebuilds responsive (@roboomp)
# Conflicts:
#	packages/coding-agent/test/modes/utils/render-initial-messages.test.ts
2026-08-13 01:16:23 +02:00
can1357 f1057bf96f Merge PR #8356: fix(bash): resolve msys drive paths in utility builtins (@roboomp) 2026-08-13 01:14:54 +02:00
can1357 8d9da96001 Merge PR #8352: fix(mnemopi): contain lifecycle hook failures (@roboomp) 2026-08-13 01:14:54 +02:00
can1357 165722373f Merge PR #8348: fix(eval): allow awaiting Python workflow helpers (@Kigbnajd) 2026-08-13 01:14:54 +02:00
can1357 3bc6269dbe Merge PR #8339: fix(coding-agent): normalize WebP for STB-backed models (@ethancawse) 2026-08-13 01:14:54 +02:00
can1357 eafefaccf7 Merge PR #8337: fix(usage): use authoritative OpenCode Go quotas (@will-bogusz) 2026-08-13 01:14:53 +02:00
can1357 ecea726004 Merge PR #8316: fix(mcp): show config source in startup failures (@jeffscottward) 2026-08-13 01:14:52 +02:00
can1357 c33cd3f1c5 Merge PR #8313: fix(coding-agent): suppress circular plan-yolo startup note (@roboomp) 2026-08-13 01:14:52 +02:00
can1357 c23c99052b Merge PR #8288: Fix open browser behaviour on Windows (@x86matthew) 2026-08-13 01:14:52 +02:00
can1357 338abf4881 Merge PR #8266: fix(omp): prevent false reset fireworks (@oleksoleksoleks) 2026-08-13 01:14:51 +02:00
can1357 3b6b28d0e8 Merge PR #8253: chore: force refresh provider api key command (@djjorjinho) 2026-08-13 01:14:51 +02:00
can1357 386dc826ef Merge PR #8236: fix(cli): handle standalone profile aliases (@roboomp) 2026-08-13 01:14:51 +02:00