Peter Steinberger
b080dd1e76
refactor: consolidate coercion contracts ( #122458 )
...
* refactor: consolidate coercion contracts
Centralize exact string, record, numeric, date, Boolean, argument, and structured-error coercions while preserving call-site semantics.
Migrate canonical-name collisions and deprecated internal SDK bypasses, deleting 55 net production/tooling lines. Expand declaration ownership enforcement to 101 allowed helpers and add a narrow export-completeness audit.
* fix: preserve standalone script coercions
Keep copied Control UI tooling self-contained and retain the trusted release harness module-relative source seam when the harness runs against an old target cwd.
2026-08-11 23:26:37 -07:00
Peter Steinberger
f166d4ee98
fix(ui): repair shared test isolation ( #122451 )
2026-08-11 22:26:52 -07:00
Vyctor H. Brzezowski
dd57cfb6c1
fix(ui): show catalog labels in hidden section settings ( #122320 )
...
* test(ui): reproduce hidden catalog id labels
* fix(ui): label hidden session catalogs
* test(ui): capture hidden catalog label evidence
* test(ui): harden hidden catalog label proof
2026-08-12 02:18:05 -03:00
Vyctor H. Brzezowski
0295b7ab54
fix(ui): gate model shortcuts by search focus ( #122316 )
...
* improve(ui): unify model picker shortcut hints
* fix(ui): gate model shortcuts by search focus
* fix(ui): focus model trigger on open
2026-08-12 02:14:47 -03:00
Peter Steinberger
1c46d517c4
fix(ui): confirm WhatsApp logout ( #122437 )
...
Require an account-bound confirmation before deleting WhatsApp credentials, and revalidate Gateway ownership plus account state after the modal resolves.
2026-08-11 22:07:35 -07:00
Peter Steinberger
f6459a3255
refactor(ui): split chat thread into transcript owners ( #122420 )
...
* refactor(ui): split chat thread into transcript owners
* refactor(ui): delete orphaned pinned-messages surface
* chore(lint): ratchet max-lines baseline after chat-thread split
* fix(ui): tighten transcript owner type boundaries
* refactor(ui): prune pinned-message orphans
2026-08-11 21:49:47 -07:00
Peter Steinberger
6b0be0215f
refactor(ui): split new-session page into draft owners ( #122413 )
...
* refactor(ui): split new-session page into draft owners
* refactor(ui): delete duplicated draft plumbing
* chore(lint): ratchet max-lines baseline after new-session split
2026-08-11 21:15:32 -07:00
Peter Steinberger
0e6f38178a
refactor(ui): simplify model effort profile flow ( #122412 )
...
* refactor(ui): simplify model effort profile flow
consolidate the Gateway profile shape, remove New Session's synthetic row, and retain boundary regression coverage.
* fix(gateway): preserve thinking projection order
Keep deterministic response bytes while consuming the canonical thinking profile.
2026-08-11 21:08:26 -07:00
Vyctor H. Brzezowski
2a1eba7713
fix(ui): show local project icons in the chat header ( #122406 )
...
* fix(ui): resolve project icons from deterministic paths
Prepare project icon bytes during chat startup and serve only the process-stable snapshot. Keep all filesystem work asynchronous and lift the breadcrumb trail onto the topbar's optical axis.
* fix(ui): keep project icon paths web-focused
Drop the IDE-specific icon convention so every candidate remains an explicit web project path.
* fix(ui): preserve project icon compatibility
Restore existing web icon paths and refresh bounded session snapshots when they are served. Keep the IDE-specific path excluded per the final product decision.
2026-08-12 00:52:44 -03:00
Vyctor H. Brzezowski
5583459475
improve(ui): use diff icon for session changes ( #122399 )
2026-08-12 00:26:22 -03:00
Vyctor H. Brzezowski
fe1dafbada
fix(ui): show nested session parent in chat header ( #122335 )
...
* fix(ui): show nested session parent in chat header
* fix(ui): cap nested chat breadcrumb width
* test(ui): avoid breadcrumb geometry shadowing
* chore(ui): keep breadcrumb comment issue-agnostic
2026-08-12 00:18:11 -03:00
Vyctor H. Brzezowski
56e6221a81
fix(ui): align chat disclosure gutters ( #122286 )
2026-08-11 23:40:36 -03:00
Shakker
05d0d980d8
fix: fence companion context snapshots
2026-08-12 03:26:33 +01:00
Shakker
0e78a64df5
fix: simplify session companion grounding
2026-08-12 03:26:33 +01:00
Vyctor H. Brzezowski
7630d060f8
improve(ui): quiet slash command menu hierarchy ( #122237 )
...
* improve(ui): quiet slash command menu hierarchy
* improve(ui): compact slash command menu
* improve(ui): polish slash command rows
* improve(ui): streamline slash command sheet
* chore(ui): refresh command copy baseline
* fix(ui): keep skill selection in view
* test(ui): type skill menu viewport stub
2026-08-11 23:00:58 -03:00
Peter Steinberger
8876528f7c
feat: clone GitHub projects from session picker ( #121818 )
...
* feat(projects): add managed GitHub clones
* feat(ui): clone GitHub projects from session picker
* fix(projects): integrate current gateway owners
* fix(protocol): derive Swift error detail accessors
* fix(ui): gate project cloning by scope
* test(gateway): isolate session prewarm probes
* revert: drop duplicate session prewarm repair
2026-08-11 18:49:16 -07:00
Vyctor H. Brzezowski
7c83fc1729
fix(ui): show a placeholder for remote markdown images ( #122312 )
...
* fix(ui): show remote image placeholders in chat
Keep remote Markdown images fetch-blocked while giving users a visible outcome and an explicit HTTPS open action.
* fix(ui): preserve links around image placeholders
2026-08-11 22:48:20 -03:00
Vyctor H. Brzezowski
89bae11799
fix(ui): fit short Canvas previews ( #122294 )
2026-08-11 22:43:07 -03:00
Vyctor H. Brzezowski
bbb5164ec9
fix(ui): keep chat sharing menu compact ( #122322 )
...
* fix(ui): keep chat sharing menu compact
* fix(ui): refine sharing menu sections
* fix(ui): use one sharing menu scroll
2026-08-11 22:34:46 -03:00
Vyctor H. Brzezowski
9dfc26ba63
fix(ui): fit chat table cards to their columns ( #122297 )
...
* test(ui): cover chat table card width
* fix(ui): fit chat table cards to columns
2026-08-11 22:10:23 -03:00
Vyctor H. Brzezowski
ff73a14f5a
fix(ui): match chat transcript text rendering to prototype ( #122328 )
...
* fix(ui): match chat transcript letter spacing
* test(ui): match computed zero letter spacing
* fix(ui): scope transcript letter spacing
* test(ui): compare inherited transcript tracking
* fix(ui): scope transcript letter spacing
2026-08-11 21:45:19 -03:00
Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger
cd0a1235a3
feat: sync new-session preferences and recents by identity ( #121816 )
...
* feat(gateway): add identity preferences and project recents
* feat(ui): sync new-session identity state
* docs: explain identity-scoped session state
* test: track preference temp directories
* fix(gateway): preserve identity preference boundaries
* chore(protocol): refresh identity preference bindings
* test: refresh historical schema hashes
* style(gateway): format method order assertion
* fix(protocol): emit project recent Swift models
* test(gateway): track preference RPC release train
* fix(gateway): harden identity preference state
* fix(state): keep preference errors internal
* chore: refresh split plugin SDK baseline
* fix(gateway): use core session store loader
* refactor(state): fold additive migration checks
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* test(ui): relocate identity recents e2e
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
* chore: regenerate plugin SDK baseline
2026-08-11 16:52:59 -07:00
joshavant
3776770a29
fix(ui): keep run inspector evidence reachable
2026-08-11 18:44:38 -05:00
joshavant
77f9bcd484
test(ui): satisfy Activity layout lint
2026-08-11 18:44:38 -05:00
joshavant
d32a290b7c
fix(ui): preserve live Activity viewport
2026-08-11 18:44:38 -05:00
joshavant
5751562bfe
fix(ui): retain shared Activity status copy
2026-08-11 18:44:38 -05:00
joshavant
9008f9b0e2
fix(ui): paginate ambiguous run candidates
2026-08-11 18:44:38 -05:00
joshavant
5f7ea6b548
fix(ui): lazy-load run inspector copy
2026-08-11 18:44:38 -05:00
joshavant
acb7f7192a
fix(ui): support exact run execution selection
2026-08-11 18:44:38 -05:00
joshavant
0f1a549a51
fix(ui): label Activity tab panel
2026-08-11 18:44:38 -05:00
joshavant
a2ca2ac8e7
fix(ui): use shared Activity tabs
2026-08-11 18:44:38 -05:00
joshavant
7ab5d99a6c
feat(ui): add durable run inspector
2026-08-11 18:44:38 -05:00
Peter Steinberger
db9bdb4a11
fix(gateway): preserve session identity through archive transitions ( #121169 )
...
* fix(sessions): fence lifecycle mutations by identity
* fix(sessions): finalize lifecycle identity fences
2026-08-11 16:43:10 -07:00
Shakker
24ad2e5d43
fix: bound companion settlement context
2026-08-12 01:17:17 +02:00
Shakker
8dc5016460
fix: make companion context fail closed
2026-08-12 01:17:17 +02:00
Shakker
72528033b2
refactor: preserve companion context boundaries
2026-08-12 01:17:17 +02:00
Shakker
281fe1e502
refactor: use canonical companion context owners
2026-08-12 01:17:17 +02:00
Shakker
6932cd6980
fix: reconcile companion progress ownership
2026-08-12 01:17:17 +02:00
Shakker
70fbc35da2
fix: ground session companion context
2026-08-12 01:17:17 +02:00
Vyctor H. Brzezowski
d8488a9406
fix(ui): keep short JSON code blocks visible ( #122313 )
2026-08-11 20:08:43 -03:00
Vyctor H. Brzezowski
ec86b02b9e
fix(ui): render disallowed link schemes as plain text ( #122311 )
...
Preserve readable Markdown labels while removing link wrappers for destinations the Control UI will not navigate.
2026-08-11 20:03:08 -03:00
Vyctor H. Brzezowski
944b81b2dc
fix(ui): keep chat Markdown block rhythm consistent ( #122289 )
...
Fixes #122269
2026-08-11 19:57:11 -03:00
joshavant
b76b9e1a75
fix(ui): retain identity while agent roster loads
2026-08-11 17:54:28 -05:00
joshavant
2fbf4fdbe6
fix(ui): preserve configured agent labels
2026-08-11 17:54:28 -05:00
Josh Lehman
585503896d
fix: preserve WebChat reply context after reloads ( #122169 )
2026-08-11 15:42:01 -07:00
Vyctor H. Brzezowski
89df45c0f5
fix(ui): make DONE moves visibly reversible ( #122303 )
...
* fix(ui): make group category moves reversible
* fix(ui): address native Groups drag review
2026-08-11 19:39:07 -03:00
Vyctor H. Brzezowski
67262b70dc
fix(ui): keep inline-code punctuation attached ( #122291 )
...
* test(ui): cover inline code punctuation spacing
* fix(ui): tighten inline code punctuation spacing
* test(ui): tolerate browser font metrics
2026-08-11 19:30:14 -03:00
Vyctor H. Brzezowski
285e58e5ef
fix(ui): label patch file operations accurately ( #122287 )
2026-08-11 19:23:27 -03:00
Vyctor H. Brzezowski
65f4320147
fix(ui): humanize bare GitHub item links ( #122285 )
2026-08-11 19:16:07 -03:00