Commit Graph
2617 Commits
Author SHA1 Message Date
Mohamed Boudra 3929643da9 fix(markdown): require letters and known extensions in bare path recognition 2026-10-16 07:21:40 +02:00
Mohamed Boudra c0c187ed29 fix(markdown): restore accentBright link colour 2026-10-16 07:18:32 +02:00
Mohamed Boudra 57b8a69a42 test(markdown): check large HTML table output without observing built-ins 2026-10-15 21:21:50 +02:00
Mohamed Boudra 9cb7984f0b test(markdown): assert linear HTML boundary work without timing 2026-10-15 20:52:11 +02:00
Mohamed Boudra 97dc696c9e perf(markdown): scan HTML block boundaries incrementally 2026-10-15 20:29:00 +02:00
Mohamed Boudra 35592a26f8 fix(markdown): keep summary block boundaries outside bold text 2026-10-15 20:26:35 +02:00
Mohamed Boudra 904fc10d89 fix(markdown): preserve adjacency around inline HTML 2026-10-15 20:24:56 +02:00
Mohamed Boudra 4dfd7c18a0 fix(markdown): preserve reader position while responses grow
Keep the same message component boundary when a live row becomes retained history, preserving Mermaid runtimes and selection nodes. Observe paced child text commits at the web viewport so sticky-bottom follows before the next frame.
2026-10-15 18:15:14 +02:00
Mohamed Boudra 5e413ad36c test(markdown): cover state retention during image arrival 2026-10-15 17:41:35 +02:00
Mohamed Boudra 9e240d5d61 fix(markdown): reserve pending images and harden web rendering 2026-10-15 17:17:49 +02:00
Mohamed Boudra 30b7b269e9 fix(markdown): preserve first definitions across Mermaid segments 2026-10-15 17:03:08 +02:00
Mohamed Boudra ad4d910aef fix(markdown): retry transient image decode failures 2026-10-15 16:55:15 +02:00
Mohamed Boudra b88b018d5f fix(markdown): preserve literal image fallback labels 2026-10-15 16:54:07 +02:00
Mohamed Boudra f90e160ac6 fix(markdown): normalize HTML following code elements 2026-10-15 16:53:16 +02:00
Mohamed Boudra 65f16f6322 fix(markdown): preserve spacing between HTML elements 2026-10-15 16:52:02 +02:00
Mohamed Boudra e014113792 fix(markdown): preserve complete assistant messages on native 2026-10-15 16:40:41 +02:00
Mohamed Boudra f829ce6ef3 fix(markdown): keep the first image reference definition 2026-10-15 16:25:58 +02:00
Mohamed Boudra e851a71ded fix(markdown): normalize only parsed HTML nodes 2026-10-15 16:24:52 +02:00
Mohamed Boudra 9e275bf361 fix(markdown): size inline images to the line and collapse failed loads 2026-10-15 16:22:37 +02:00
Mohamed Boudra 58f2fed621 fix(markdown): keep the renderer tree stable while images resolve 2026-10-15 16:17:52 +02:00
Mohamed Boudra fca12a89d6 fix(markdown): normalize inline HTML before rendering 2026-10-15 16:08:55 +02:00
Mohamed Boudra 648f290687 fix(markdown): restore file link hover tooltips on web 2026-10-15 16:05:50 +02:00
Mohamed Boudra 8057a65f41 fix(markdown): restore selection highlight on web 2026-10-15 16:00:26 +02:00
Mohamed Boudra 134b796859 fix(markdown): derive table and task list colours from the theme 2026-10-15 15:57:03 +02:00
Mohamed Boudra f5fb20cc55 fix(markdown): preserve encoded image paths after rebase
Keep the shared renderer image normalization and file-read regression coverage that originally lived in the main integration merge.
2026-10-15 15:33:33 +02:00
Mohamed Boudra d2169a061c fix(markdown): preserve authored empty link titles 2026-10-15 15:32:20 +02:00
Mohamed Boudra ee4a5bca7a fix(markdown): avoid empty web history measurements 2026-10-15 15:32:19 +02:00
Mohamed Boudra b782963970 fix(markdown): retain diagram identity and reference scope 2026-10-15 15:32:19 +02:00
Mohamed Boudra 3d06f652b2 fix(markdown): restore diagrams and preserve link origin 2026-10-15 15:32:19 +02:00
Mohamed Boudra 554530a667 fix(markdown): preserve file links and image revisions 2026-10-15 15:32:19 +02:00
Mohamed Boudra 096508240f feat(markdown): use enriched renderer across all platforms 2026-10-15 15:32:19 +02:00
Mohamed Boudra 3639084530 revert(app): remove shared prose-run renderer changes
Reverts ab4737bb2 and ac47e1063 before replacing the Markdown engine across all platforms.
2026-10-15 15:32:02 +02:00
Mohamed Boudra 2db3488dbd fix(app): preserve Markdown containers before grouping prose 2026-10-15 15:32:02 +02:00
Mohamed Boudra bf100e1752 fix(app): share selectable native prose across Markdown surfaces 2026-10-15 15:32:02 +02:00
Mohamed Boudra ab234d5f12 fix(app): skip prose classification for blocks over the render cap 2026-10-15 15:32:02 +02:00
Mohamed Boudra 633950bb6a fix(app): preserve bracketed IPv6 links in native prose 2026-10-15 15:32:02 +02:00
Mohamed Boudra 1fbdac728f fix(app): keep growing markdown on the streaming block renderer 2026-10-15 15:32:02 +02:00
Mohamed Boudra 9b7a6ba782 fix(app): preserve parser-owned links and streaming tilde tails 2026-10-15 15:32:02 +02:00
Mohamed Boudra aeaee471a6 fix(app): preserve home paths and normalized prose links 2026-10-15 15:32:02 +02:00
Mohamed Boudra 9bbfe29c0e fix(app): bound prose append work and preserve markdown edge cases 2026-10-15 15:32:02 +02:00
Mohamed Boudra d42e0ca00c fix(app): preserve provisional syntax at cached reveal boundaries 2026-10-15 15:32:02 +02:00
Mohamed Boudra eedf916023 fix(app): preserve native prose entities and links while bounding preparation cost 2026-10-15 15:32:02 +02:00
Mohamed Boudra 7023d20a5b fix(app): preserve markdown source and file actions in native prose
Prepare original source blocks with source-position edits from the assistant parser. Keep reference scope and live/history projection consistent, and retain link text when dispatching workspace file actions.
2026-10-15 15:32:02 +02:00
Mohamed Boudra 5bf0e4b588 fix(app): preserve inline image formatting and reference scope 2026-10-15 15:32:02 +02:00
Mohamed Boudra 9ef289e7f4 fix(app): allow additive task lists and admonitions in native prose 2026-10-15 15:32:02 +02:00
Mohamed Boudra 83061e0312 fix(app): preserve markdown semantics and render limits in prose runs 2026-10-15 15:32:02 +02:00
Mohamed Boudra 75907b360b fix(app): render selectable native prose with enriched markdown 2026-10-15 15:32:01 +02:00
Mohamed Boudra d8f79925d1 fix(app): group native assistant prose into selectable runs 2026-10-15 15:32:01 +02:00
Mohamed Boudra 74282dac12 fix(app): return to chat after fullscreen submission (#6987) 2026-10-15 14:55:19 +07:00
Mohamed BoudraandClaude e5124b039a Put sheets on one stack and show an agent's facts in its sheet (#6958)
* Put sheet tabs on the one sheet stack

Sheets are one primitive with one stack. A sheet opened from any sheet
stacks on top of it, and closing it uncovers the sheet underneath. The
compact workspace's file and subagent sheets were an in-tree Gorhom
BottomSheet with their own stacking, so a subagent chosen from the
subagents list sheet replaced the list instead of covering it.

- SheetHostScope: a subtree hosts the sheets presented inside it, so the
  sheet tabs draw inside the compact column and read the workspace
  providers while still joining the app-wide stack. Needs Gorhom's
  BottomSheetModalInternalProvider, which the patch exports.
- IsolatedBottomSheetModal takes enableDismissOnClose; false keeps the
  content mounted through a close so the unsaved-changes guard can veto
  it. Its backdrop then closes the sheet rather than dismissing the top
  modal. The Gorhom patch also keeps a dismissing modal's status through
  its final onChange(-1), without which such a modal unmounting while
  presented never left the portal.
- SheetTabs (was WorkspaceSheetHost) renders one IsolatedBottomSheetModal
  per store entry. The store never reorders sheets; a reveal of a covered
  sheet drops the unmodified sheets above it.
- Subagent rows that open a sheet keep the list open (closeOnSelect
  false); rows that open a tab still close it.
- A menu closes when its retained panel goes inactive, instead of hiding
  and reappearing with the panel on the next tab switch.

Co-Authored-By: Claude <noreply@anthropic.com>

* Show an agent's model and thinking in its sheet, and fit Open as tab in the header rail

A Paseo agent shown in a sheet has no composer, so the facts the composer's
model and thinking controls would show now sit in one line under the sheet
header, the same row provider subagents already get from the daemon. The line
resolves exactly as the controls do (resolveAgentModelSelection), from the
session agent and the providers snapshot, and shows wherever the pane host is
a sheet.

Open as tab becomes the full-screen glyph beside Close, drawn by the shared
SheetHeaderIconButton, so the title keeps its width. The tab switcher sheet is
titled "Workspace tabs" so it reads as what it lists.

Co-Authored-By: Claude <noreply@anthropic.com>

* Show mode and context usage in the sheet facts line

The line under a sheet's header now carries everything the composer's
controls and context meter show: model, thinking, mode, and used/max context
tokens with the share, each resolved as its control resolves it.

Co-Authored-By: Claude <noreply@anthropic.com>

* Re-render subagent rows when the workspace's tabs change

A row decides at render time whether choosing it opens a sheet or reveals
a tab, and keeps the list open only for a sheet. The hook behind it only
subscribed to the layout mode, so a row rendered while its agent was a
full tab kept closing the list after that tab was gone: on iOS, promoting
a managed child, closing its tab, and reopening it from the list dropped
the list under the sheet. Subscribe to the workspace's layout too.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-15 12:16:45 +07:00