Commit Graph

13908 Commits

Author SHA1 Message Date
roboomp 4d494cc512 fix(robomp): promote deferred events on periodic sweep
Ran deferred-submission promotion on an independent timer in addition to the empty-queue path, so a sustained ordinary queue can no longer starve a rate-limited submitter after their rolling window frees. Added ROBOMP_DEFERRED_PROMOTION_SCAN_SECONDS to tune or disable the sweep.

Fixes #5882
2026-07-17 17:33:23 +00:00
roboomp aecef46436 fix(robomp): deferred rate-limited submissions
Stored a bounded per-login overflow backlog and promoted deferred events oldest-first as rolling-window capacity became available. Surfaced the deferred state through the dashboard contract and documented admission behavior.

Fixes #5882
2026-07-17 17:26:39 +00:00
can1357 0f9fceeea4 test(plan): seeded anthropic runtime key in issue-816 repro
- Both plan-model transition tests relied on ambient host credentials to
  make anthropic models resolvable; on CI runners without keys the
  plan-role reassignment and restore paths were silently skipped.
- Seeded a runtime API key via AuthStorage, matching the pattern used by
  every other coding-agent session test.
2026-07-17 08:06:11 +02:00
can1357 d527259c26 chore: bump version to 17.0.2 2026-07-17 07:40:54 +02:00
can1357 0f26558d03 chore: reformat 2026-07-17 07:40:21 +02:00
can1357 eac51b6a04 Merge: darkphilosophy/feat/advisor-per-agent-toggle
Brings the per-advisor toggle, status-line glyphs, quota display, and the
failing-advisor stall/abort fix (f4c8143) onto main's rewritten advisor
runtime. Conflict reconciliation kept main's architecture (fingerprint
prefix reconciliation, host-level onTurnError recovery + fallback chains,
terminal-failure classification) and ported the branch semantics onto it:

- #failing latch: waitForCatchup resolves immediately while an advisor is
  mid-failure; parked waiters wake the moment a turn fails, before any
  async hook or retry sleep.
- Turn-end render containment: a formatter bug restores the cursor/prefix/
  dedup snapshot and never propagates into the primary's turn-end callback
  (per-advisor try/catch boundary in AgentSession).
- Quota pause: when host recovery declines a usage-limit failure, the
  runtime latches quotaExhausted, requeues the batch, and notifies —
  cleared only by an explicit reset.
- Hard halt after a permanent rejection or three backlog-drop cycles.
- #recoverAdvisorTurn also marks usage limits for structural errors thrown
  before any assistant turn is recorded.
2026-07-17 07:37:29 +02:00
can1357 38b73a5cbc style(tests): removed unused fixture variable and formatted plan test
The redaction-contract rewrite left credentialTokens unused in the
GitLab Duo provider test, failing biome's lint gate.
2026-07-17 07:24:54 +02:00
can1357 85b9c01f1c test(plan): made plan-role apply and restore regressions deterministic
The reassignment test awaited a single microtask, but the role-change
listener crosses real async storage hops since per-project model roles;
it now awaits the setModelTemporary call itself. The failed-restore
test picked claude-haiku unconditionally, which no-ops plan entry when
the ambient default already resolves to haiku (as on CI); it now picks
a model that differs from the active session model.
2026-07-17 06:56:59 +02:00
can1357 4b4bad430a test(ai): aligned kimi-code thinking tests with the zai compat policy
The regenerated catalog stamps kimi-for-coding with the zai thinking
format, under which reasoning yields to a forced tool choice (#5758
review) instead of downgrading the choice: chat-completions carries an
explicit thinking {type: disabled} and the Anthropic wire keeps the
forced choice with no thinking block.
2026-07-17 06:38:27 +02:00
DarkPhilosophy f4c81434d0 fix(advisor): never let a failing advisor stall or abort the primary agent
A broken advisor could hold the primary agent on the per-turn catch-up
gate for its full 30s budget while retrying, and an exception thrown from
onTurnEnd propagated into the primary's turn-end callback.

- waitForCatchup resolves immediately while the advisor is mid-failure
  (new #failing latch, set at the failure catch BEFORE any async hook,
  cleared on the next successful turn or reset/seed).
- Every parked waiter is woken the moment an advisor turn fails.
- The turn-end boundary isolates advisor exceptions per advisor: a
  throwing advisor loses its delta, the primary and sibling advisors
  continue untouched.
- A failed render (poisoned message, formatter bug) restores the delta
  cursor and dedup state, so the delta is re-rendered next turn instead
  of silently lost; the size probe itself is guarded and falls back to
  the deferred renderer.
2026-07-17 07:24:30 +03:00
can1357 c71aa775e0 fix(catalog): restored regenerated models.json with behavior-level tests
Reinstates the catalog regeneration (glm-4.5 reasoning/effort metadata,
refreshed pricing and limits) that the previous commit wrongly rolled
back. The three failing tests were pinned to stale upstream metadata;
they now assert the durable contracts instead: K2.7-Code stays above
the 32,768 K2-family cap and tracks the bundled reference, and K3
asserts effort-mode metadata while the wire-body test remains the
binding reasoning_effort=max contract.
2026-07-17 06:22:44 +02:00
can1357 5394081390 fix(catalog): restored bundled models.json to the tested snapshot
A stale regenerated models.json rode the previous commit from the
shared index; it contradicted the Fireworks K2.7-Code output-ceiling
and Moonshot K3 reasoning contracts (#1849, #5756). Restored the
snapshot those tests verify; a deliberate catalog refresh should
reconcile the K3/K2.7 policies first.
2026-07-17 06:13:22 +02:00
can1357 731a2cb5b2 test(natives): gave timeout drain repro a spawn-proof deadline
The 50ms budget raced external-process spawn on cold CI runners: cancel
could fire before yes produced output, so the builtin tail flushed an
empty ring buffer (0 lines instead of 5, Linux x64 modern). 750ms keeps
the post-cancel drain scenario while outlasting spawn latency.
2026-07-17 06:09:51 +02:00
can1357 1b267ad3fe fix(tui): restored alt-screen borrow for resize drag frames
- v17.0.1 (#5476) rewrote the normal buffer in place per SIGWINCH, so
  the terminal's own width reflow pushed wrapped fragments into native
  scrollback mid-drag and resize smoothness collapsed.
- Throwaway drag frames paint on the alternate screen again; the settle
  full paint fuses the buffer exit ahead of its destructive repaint.
- Kept the #5319 fixes: deferred overlay alt-exit fusing, confirmed-only
  DECRPM 2026 handling, and Warp's in-place resize path.
2026-07-17 05:49:22 +02:00
can1357 2a6d551063 revert(status-line): restored single-row status bar with priority drop
- Reverted PR #5751 (issue #5749): continuation rows wrapped the editor
  top border onto extra lines, which is unacceptable for the input frame.
- EditorTopBorder is back to a single content/width pair; narrow widths
  drop right segments, shrink the path, then drop left segments.
2026-07-17 05:49:13 +02:00
can1357 206cb93fa1 test(bash): asserted timeout settles as flagged result
Local bash timeouts resolve with details.timedOut and a warning render
since #5546; ACP retains rejection semantics.
2026-07-17 05:46:57 +02:00
can1357 5f46138c4d fix(ai): redacted the GitLab Duo goal transcript
The Duo goal bypasses transformMessages; apply the outbound credential
scrub (#5655) to the rendered ChatML transcript and latest-prompt goal,
and updated the provider test to the redaction contract.
2026-07-17 05:40:13 +02:00
can1357 32fecd0c8d fix(tests): repaired type errors from owner-approved merges
Dropped a nonexistent AnthropicCompat field from the redaction test and
made the handoff agent_end capture handler return void.
2026-07-17 05:36:09 +02:00
can1357 adb2a3c7e2 style: formatted files from owner-approved merges 2026-07-17 05:33:19 +02:00
can1357 fcb368263b merge PR #5507 via eval/pr-5507: feat(telemetry): support full OTel — log and metric export 2026-07-17 05:32:51 +02:00
can1357 450bea6cc7 feat(coding-agent): disabled generate_image by default
Lands the intent of #5318 on the established generate_image.enabled
gate instead of introducing a parallel imagegen.enabled key; sessions
must opt in before the tool registers top-level or as an xd:// device.
2026-07-17 05:32:51 +02:00
can1357 8876eef886 Revert "merge PR #5669 via eval/pr-5669: fix(tui): preserve inline images in scrollback"
This reverts commit 8ac271b90b, reversing
changes made to 5903894e66.
2026-07-17 05:32:26 +02:00
can1357 c43eab8d02 chore align OpenTelemetry versions 2026-07-17 05:30:11 +02:00
can1357 e00eb7cfbc fix telemetry export signals 2026-07-17 05:29:46 +02:00
can1357 4e0e53c183 merge PR #5321 via eval/pr-5321: feat(coding-agent): generate_image per-request provider + Codex-subscription images 2026-07-17 05:29:29 +02:00
can1357 ac3d779fad merge PR #5592 via eval/pr-5592: feat(warp): emit native CLI-agent events 2026-07-17 05:29:29 +02:00
can1357 0df481daea merge PR #5655 via eval/pr-5655: fix(ai): redact sensitive credentials from outbound messages 2026-07-17 05:29:28 +02:00
can1357 bf8925b43f test(session): drove plan-reference compaction tests through an active goal
Post-compaction auto-continuation is gated on remaining work since
#5721; an active goal keeps the continuation vehicle these #1246
regressions ride on.
2026-07-17 05:29:21 +02:00
can1357 6f0d61f7ca fix(ai): dropped stale signatures after credential redaction 2026-07-17 05:26:18 +02:00
can1357 dee89ed5ae fix(warp): settle deferred handoffs 2026-07-17 05:25:05 +02:00
can1357 92d63050c0 merge sweep/2026-07-17 2026-07-17 05:24:45 +02:00
can1357 d124cf286e fix(coding-agent): fall through invalid Codex image keys 2026-07-17 05:24:24 +02:00
can1357 039497a167 merge PR #5546 via eval/pr-5546: fix: render bash timeout with warning border instead of error 2026-07-17 05:23:50 +02:00
can1357 a7eadcae46 merge PR #5635 via eval/pr-5635: fix(coding-agent): disable thinking on local llama.cpp Qwen models 2026-07-17 05:23:49 +02:00
can1357 8bdb69254b merge PR #5596 via eval/pr-5596: feat(coding-agent): support per-project model roles
Combined #5586's role-tag precedence with #5596's scope labels in the
selector status messages.
2026-07-17 05:23:49 +02:00
can1357 87bd6c7b94 Merge branch 'sweep/2026-07-17' into eval/pr-5321
# Conflicts:
#	packages/coding-agent/src/config/settings-schema.ts
#	packages/coding-agent/src/tools/image-gen.ts
#	packages/coding-agent/test/tools/image-gen.test.ts
2026-07-17 05:23:41 +02:00
can1357 b4e46f8fc6 fix(session): tolerated partial extension runners in dispose
Managed-timer cleanup from #5667 is now optional-called so host or test
facades implementing only the dispatch surface do not throw during
dispose; aligned the selector fallback status expectation with #5586's
role-tag casing.
2026-07-17 05:23:00 +02:00
can1357 86b6265ef5 Merge branch 'sweep/2026-07-17' into eval/pr-5592
# Conflicts:
#	packages/coding-agent/test/agent-session-checkpoint-rewind-branch.test.ts
2026-07-17 05:22:52 +02:00
usr_bin_roygbiv fab31a2bae fix(ai): redact sensitive credentials in system prompt instructions 2026-07-17 05:22:35 +02:00
usr_bin_roygbiv c55196eb30 fix(ai): retry full transcript on blocked stateful OpenAI Responses prompts 2026-07-17 05:22:35 +02:00
usr_bin_roygbiv 99ecfd6b6c fix(ai): avoid JSON.stringify BigInt serialization crash in redactSensitiveInObject 2026-07-17 05:22:35 +02:00
usr_bin_roygbiv b59ee9a99c fix(ai): redact sensitive credentials from outbound messages 2026-07-17 05:22:34 +02:00
can1357 ab39a4b18b Merge branch 'sweep/2026-07-17' into eval/pr-5546 2026-07-17 05:22:13 +02:00
can1357 19f40f0b5d merge PR #5591 via eval/pr-5591: docs: documented magic keywords 2026-07-17 05:22:09 +02:00
can1357 a4c9ffb434 fix: preserve bash timeout and abort semantics 2026-07-17 05:18:39 +02:00
can1357 f36394ef55 style: fixed formatting in merged test and session files 2026-07-17 05:02:31 +02:00
can1357 2594ae352b style: formatted conflict-resolved files with biome 2026-07-17 05:01:19 +02:00
can1357 f4bbf2dec6 chore: normalized changelogs after merge sweep
Ran scripts/fix-changelogs.ts --since 1424cae06 to merge duplicate
Unreleased headings and promote entries the union merge driver misfiled.
2026-07-17 05:01:09 +02:00
can1357 dd84ec57ce apply PR #5468: fix(advisor): stop retrying terminal failures
Grafted the evaluator's port (ec2c1e632) onto the merged advisor
runtime: terminal provider failures classified non-retriable (and not
context overflow) drop the bounded batch after one attempt with a
single notification; fallback-chain recovery and overflow recovery
retain precedence. Includes the one-prompt regression test and tags the
rollback-retry fixture's synthetic failure as transient.
2026-07-17 05:00:06 +02:00
can1357 11a879e993 merge PR #5463 via eval/pr-5463: fix(advisor): anchor context maintenance on provider usage
Semantic merge with #5734 (delivered-prefix reconciliation) and #5748
(fallback chains): kept the coalescing round cap and wip threading,
adopted bounded cursor-preserving maintenance resets and overflow
recovery, and gated late-arrival consumption on coalescing rounds so
both suites' backlog and preserved-updates contracts hold.
2026-07-17 04:55:49 +02:00