Jason (Json)
d16c2858bf
improve(update): make managed finalization timing auditable ( #126107 )
...
* improve(update): report finalizer phase timings
* test(update): return completion cache outcome
* refactor(update): isolate finalize command
* chore(update): document finalize config assertion
* test(update): isolate finalizer capability fixtures
2026-08-18 22:34:22 -06:00
Peter Steinberger
a89c568068
fix(ui): center dashboard widget controls on hover ( #126076 )
...
* fix(ui): center dashboard widget hover controls
* fix(ui): gate resize handle with centered hover
* fix(ui): preserve iframe clicks with centered controls
* fix(ui): preserve corner actions when centering controls
* fix(ui): compact centered controls at intermediate widths
* test(plugins): align SDK subpath docs contract wording
2026-08-18 21:32:37 -07:00
Peter Steinberger
4ffa2a4418
fix(gateway): avoid readiness flaps during Reef reconnects ( #126151 )
...
* fix(gateway): avoid readiness flaps during Reef reconnects
* docs: preserve plugin SDK private-local contract wording
2026-08-18 21:29:43 -07:00
Peter Steinberger
00482543ff
fix(agents): bound Skill Workshop model projections ( #126158 )
2026-08-18 21:28:54 -07:00
Peter Steinberger
b4a720ff1e
fix(worktrees): preserve active removal authority ( #126174 )
2026-08-18 21:21:25 -07:00
Peter Steinberger
8c3b3c6ea8
feat(agents): link PRs to public work sessions ( #126057 )
...
* feat(agents): link PRs to public work sessions
* fix(agents): preserve cron prompt cache for PR links
2026-08-18 21:13:27 -07:00
Peter Steinberger
601f65b2fd
fix(clickclack): advertise media delivery capability ( #126168 )
2026-08-18 21:11:59 -07:00
Peter Steinberger
6c26bc7e2b
fix(workboard): preserve concurrent edits during rollback ( #126161 )
2026-08-18 21:08:49 -07:00
Peter Steinberger
7bc994aee8
fix(install): avoid success after incomplete lifecycle changes ( #125992 )
...
* fix(install): make lifecycle mutations transactional
Standalone installers now apply npm-version-aware lifecycle approval. Updates verify and repair the installation before reporting success and preserve the prior install owner during method switches. Uninstall now exits nonzero when requested cleanup is only partially completed. Plugin update behavior is unchanged.
Closes #125925
* test(uninstall): assert aggregated live-owner failure
* fix(install): satisfy standalone shell checks
* fix(update): scan PATH for prior Git wrapper
* test(hooks): await Gmail watcher descendant exit
* fix(install): verify Windows npm candidate
* fix(ci): normalize package acceptance version
* fix(update): preserve staged local package links
* test(update): fold staged symlink coverage
* fix(update): retire every legacy Git wrapper
* test(docs): align consolidated ownership checks
2026-08-18 20:50:15 -07:00
Peter Steinberger
a441431896
fix(tui): restore remembered global sessions ( #126135 )
2026-08-18 20:30:27 -07:00
ClawSweeper
7e69b1d5ab
fix(ui): make Guardian review activity subtle ( #125395 )
...
* fix(ui): make guardian reviews subtle
* fix(ui): correlate Guardian warning cleanup
* fix(ui): retain ambiguous Guardian warnings
* fix(codex): preserve Guardian review state
Keep command-owned review state durable across reconnect and persisted history, with conservative bounded outcomes and producer-owned routine warning correlation. Verify native user-home app-server auth instead of injecting stored profiles.
* refactor(ui): split workspace conflict rendering
---------
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-18 20:28:23 -07:00
Peter Steinberger
f2297701dd
fix(agents): retain gateway binding for subagent completion ( #126122 )
2026-08-18 20:26:56 -07:00
Peter Steinberger
57e5ab7a87
fix(apps): show native gateway and notification failures ( #125909 )
...
* fix(apps): surface native action failures
Make iOS gateway reconnect attempts return visible closed outcomes, route macOS gateway deep links through primary setup confirmation, and expose pending/sent/error notification test results across native and Dashboard settings.
* chore(apps): refresh native i18n inventory
* test(macos): isolate gateway cancel state
* fix(ui): accept permission-only notification status
* test(gateway): drain accepted agent run before fixture reset
* fix(ui): notify clients after service worker claim
* test(gateway): wait for accepted root work to drain
* test(ui): isolate widget theme observer window
* test(ui): await durable attachment draft before teardown
* test(agents): use race-safe MCP process cleanup
* test(ui): await cloud startup runtime before error probe
* test(ui): align startup and teardown probes with current owners
2026-08-18 20:15:52 -07:00
Peter Steinberger
66cacbae5d
test: remove strict-subset assertions ( #126142 )
2026-08-18 20:15:50 -07:00
Peter Steinberger
7097ccc7bd
perf(test): gate Skill Workshop proof capture ( #126051 )
2026-08-18 20:13:50 -07:00
Peter Steinberger
2a97397f47
docs: consolidate setup and plugin references ( #126132 )
...
* docs: consolidate setup and plugin references
* docs: preserve meeting plugin configuration
2026-08-18 20:00:05 -07:00
Peter Steinberger
feda957fc5
fix(gateway): bind channel completion dispatch ( #126113 )
...
* fix(gateway): bind channel completion dispatch
* fix(plugin-sdk): scope harness completion dispatch
* test(agents): cover scoped completion dispatch
2026-08-18 19:48:24 -07:00
Peter Steinberger
3666fa6825
fix(config): clone catalog metadata before defaults ( #126123 )
...
* fix(config): clone catalog metadata before defaults
* refactor(config): keep catalog clone net neutral
2026-08-18 19:47:31 -07:00
ClawSweeper
bf420e92c6
fix(ui): keep mobile session actions reachable ( #126124 )
...
* fix(ui): keep mobile session actions reachable
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
* test(ui): use placement startup capability
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
---------
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-18 19:46:34 -07:00
Vyctor H. Brzezowski
2a469c1cb2
fix(ui): dismiss completed progress cards ( #126102 )
...
* test(ui): cover completed progress card dismissal
* test(ui): capture both completed card themes
* fix(ui): dismiss completed progress cards
* style: format progress card dismissal
* test(ui): assert visible dismissal lifecycle
* test(ui): wait for reloaded composer proof
* refactor(ui): reuse progress card action styles
* chore(protocol): refresh Swift progress card params
* style(ui): format progress card test
* fix(ui): hide progress dismissal from viewers
* test(ui): use Vitest viewer assertion
2026-08-18 23:39:31 -03:00
Peter Steinberger
89a7e4e965
fix(gateway): abort failed partial HTTP responses ( #126130 )
2026-08-18 19:34:32 -07:00
Peter Steinberger
0eac4f7a3c
test(ai): route parity fixtures to owner ( #126131 )
2026-08-18 19:33:48 -07:00
ClawSweeper
23da04ba8a
fix(sessions): require durable final reply evidence ( #126075 )
...
* fix(sessions): require durable final reply evidence
* fix(sessions): enforce durable terminal reply evidence
---------
Co-authored-by: Jason (Json) <263060202+fuller-stack-dev@users.noreply.github.com >
2026-08-18 20:18:14 -06:00
Peter Steinberger
64776a0489
fix(sessions): preserve committed results across reconnects ( #125904 )
...
* fix(sessions): preserve committed operation results
Report post-commit create failures through the existing runError response and retain confirmed same-client Control UI mutations across reconnects while fencing replacement clients.
* test(ui): await new-session ownership state
* test(ui): clarify draft teardown durability
* fix(ui): preserve reconnect refresh failures
* test(ui): poll absent text targets safely
* test(sms): await ingress spool ownership
* test(ui): await cloud startup failure state
* test(ui): await canonical place selection
* test(ui): scope activity feed to route owner
* test(ui): stabilize route-owned activity states
2026-08-18 19:13:58 -07:00
Peter Steinberger
0718aedb9d
test(cli): remove stale update sidecar fixture ( #126126 )
2026-08-18 19:13:09 -07:00
Peter Steinberger
c97b8ffdfc
refactor: consolidate meeting and media provider families ( #126053 )
...
* refactor(plugins): consolidate provider family helpers
* fix(plugin-sdk): keep meeting script helpers private
* fix(plugins): sync meeting boundary paths
2026-08-18 19:11:13 -07:00
Peter Steinberger
15fb00eb6b
fix: surface paired-device runtime requirements ( #126067 )
...
* fix: surface paired-device runtime requirements
* test: cover session runtime placement metadata
* test(gateway): stabilize runtime catalog fixtures
* fix(gateway): reject incompatible device moves
2026-08-18 19:10:41 -07:00
Peter Steinberger
cc19b83d75
fix(status): keep reports available without read scope ( #126072 )
2026-08-18 19:08:04 -07:00
Peter Steinberger
886cf1a0bf
fix(cua-computer): resolve the ESM-only driver SDK during artifact verification ( #126120 )
...
@trycua/cua-driver ships an exports map with only the import condition, so
require-condition resolution throws PATH_NOT_EXPORTED even when the package
is installed. Every real Windows/Linux node host therefore failed driver
artifact verification with COMPUTER_DRIVER_PACKAGE_MISSING despite a correct
install. Fall back to import-condition resolution before concluding the
package is missing; the platform packages keep resolving through require.
Found during a live CUA node bring-up on an Ubuntu guest; the regression
test exercises real installed-package resolution on Linux/Windows CI.
2026-08-18 19:06:52 -07:00
Peter Steinberger
407c8cdb34
fix(mcp): preserve catalog and result integrity ( #126083 )
...
* fix(mcp): preserve catalog and result integrity
* fix(mcp): sanitize node result details
* test(mcp): stabilize result memory regression
* refactor(mcp): keep result limits private
* test(mcp): remove stale invoke import
2026-08-18 19:05:33 -07:00
Peter Steinberger
cc273e6eea
fix(channels): stop idle ingress retention writes ( #126073 )
...
* fix(channels): prune ingress retention on admission
* style(channels): keep ingress monitor within limit
* fix(channels): skip pruning ignored ingress
2026-08-18 19:05:30 -07:00
Peter Steinberger
d1f327a4e4
fix(ui): refresh Browser when sidebar tab activates ( #126058 )
2026-08-18 19:05:20 -07:00
Peter Steinberger
a8bc60a119
refactor(ui): generalize session placement startup ( #126118 )
2026-08-18 18:59:50 -07:00
ClawSweeper
22665ae71f
fix(ui): fill expanded mobile side panel ( #126111 )
...
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-08-18 18:55:09 -07:00
Peter Steinberger
948a444d63
fix(ui): require exact active run ownership ( #126116 )
2026-08-18 18:54:58 -07:00
Peter Steinberger
f335532ded
fix: restart-recovered turns no longer show fatal errors ( #126087 )
...
* fix: let restart recovery own terminal settlement
Once durable restart recovery is armed, propagate the canonical restart abort before terminal payload mapping so the recovered continuation owns the visible outcome.
Fixes #126086
* fix(gateway): expose lifecycle context resolver
* fix(gateway): keep lifecycle resolver type acyclic
Own the live Gateway context resolver option beside lifecycle dispatch so current callers compile without closing the server type cycle.
* test(gateway): serialize connection liveness cases
The table cases share one hoisted handler mock; explicit sequential execution prevents cross-case 0/2 call interference in the concurrent CI shard.
* fix: preserve restart recovery claim through settlement
Mark the reply operation restart-aborted before propagating the canonical restart error so terminal cleanup cannot retire the durable recovery claim.
2026-08-18 18:54:23 -07:00
Peter Steinberger
8674f0c1e9
test(agents): remove transport contract test facades ( #126110 )
2026-08-18 18:52:13 -07:00
ClawSweeper
05817086cc
fix(ui): keep memory header stable across tabs ( #125568 )
...
* fix(ui): keep memory hub header stable across tabs
* test(ui): tolerate subpixel layout rounding
* fix(ui): keep memory header padding stable
* test(ui): scope memory layout assertion
* test(ui): satisfy promise executor lint
---------
Co-authored-by: RoboClaw <309084314+roboclaw-bot@users.noreply.github.com >
Co-authored-by: Colin Johnson <colin@solvely.net >
2026-08-18 18:45:36 -07:00
Peter Steinberger
16419cb475
fix: preserve managed checkouts with shared project references ( #126004 )
...
* fix: preserve shared managed project checkouts
* test(gateway): drain root work without agent wait
* fix(projects): complete canonical checkout lifecycle
2026-08-18 18:44:46 -07:00
Josh Avant
784676537c
feat(ui): enable link favicons by default ( #126109 )
2026-08-18 18:41:54 -07:00
ClawSweeper
a480d0347f
feat(sessions): expose sidebar category controls ( #126074 )
...
* feat(sessions): expose sidebar category controls
* fix(sessions): make category controls explicit
* test(sessions): update list description fixture
---------
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-08-18 19:41:35 -06:00
Peter Steinberger
fea2198319
fix(ui): keep New Session folder picker usable while menus close ( #126032 )
...
* fix(ui): track overlapping place popover hides
* test(ui): stabilize activity grouping across timezones
2026-08-18 18:29:49 -07:00
Peter Steinberger
f4faa0a1b0
fix(status): show unavailable telemetry diagnostics ( #126092 )
2026-08-18 18:26:14 -07:00
Peter Steinberger
61eb7b932b
fix(agents): keep guided auth atomic through creation ( #126096 )
...
* fix(agents): make guided auth creation atomic
* fix(auth): keep staged agent workspace explicit
* test(auth): use managed temp directory
* fix(gateway): finish detached lifecycle dispatch migration
* fix(auth): carry staged workspace through providers
* test(auth): align mocks with batch persistence
2026-08-18 18:18:53 -07:00
Peter Steinberger
f3c076cacb
test(release): remove release-check helper barrel ( #126105 )
2026-08-18 18:14:25 -07:00
Peter Steinberger
66c7d720bd
fix(models): seed configured provider model entries from catalog metadata ( #126068 )
...
* fix(config): seed configured provider model entries from catalog metadata
applyModelDefaults replaced omitted input/reasoning/cost/maxTokens on
models.providers entries with generic defaults at config load, erasing the
fact that the operator never authored them. An override entry that pins only
sizing fields materialized as a text-only, non-reasoning, zero-cost model,
which silently dropped vision-gated tools (most visibly the computer tool)
for that model downstream.
Seed omitted fields from the owning plugin manifest catalog row (same
provider+model id, using the existing id-normalization policies) before
falling back to generic defaults. Authored fields always win; entries with
no catalog row behave exactly as before.
* fix(config): preserve tiered pricing when seeding model cost defaults
resolveModelCost keeps only flat per-token fields; carry an authored or
catalog tieredPricing table through explicitly so cost defaulting does not
silently discard it.
2026-08-18 18:12:16 -07:00
Peter Steinberger
54ebb307cd
fix(mcp): retire terminal transports and process trees ( #126101 )
...
Close terminal SSE and stateful notification streams through the owning lifecycle, and reap stdio/QA process groups before exact authority is discarded.\n\nRefs #126098 , #126099 , #126100 .
2026-08-18 18:10:45 -07:00
Samuel Judson
6ccc57b331
fix: add ssrf protection to Beam fetches ( #123848 )
...
* Add ssrf protection to Beam fetches.
* Additional robustness following initial comments.
* fix(beam): make redirect failures terminal
* chore(plugin-sdk): refresh surface budget
* docs(beam): define redirect restart behavior
* docs(beam): align redirect config help
* test(beam): cover warning before redirect block
* fix(beam): always report terminal redirect blocks
---------
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-08-18 18:00:58 -07:00
Peter Steinberger
6d4950365b
refactor(agents): consolidate session auth selection behind prepared-facts facade ( #126084 )
...
* fix(subagents): drop dead announce gateway-context resolver plumbing
#126062 left caller-supplied announce gateway-context resolvers behind after binding dispatch to the Gateway instance. Remove the dead plumbing that broke prod-types in gateway-scope lanes.
* refactor(agents): consolidate session auth selection behind prepared-facts facade
Completes #123894 's redesign by deduplicating the four session-auth call-site preludes and deleting inference-runtime's duplicate route re-derivation.
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
---------
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-08-18 17:53:52 -07:00
Peter Steinberger
614b503704
test(telegram): remove forum cache reset seam ( #125986 )
2026-08-18 17:47:19 -07:00