Commit Graph
401 Commits
Author SHA1 Message Date
Federico Jaramillo Martinez ecede3ac7c refactor: drive attachment sending state through the chat activity dock
Replace the composer-local "Sending…" indicator with a single, consistent
state surfaced by the existing chat activity dock. The session controller
now owns the full attachment send lifecycle (including the folder-mode
upload + reference rewrite) and toggles an isSendingPrompt flag around it,
which the chat dock renders as "Sending your message…" until the real
server activity supersedes it.

This covers the pre-receipt dead zone (upload, server-side image resize,
first-session open) with one indicator instead of two, and keeps plain
text sends fire-and-forget.
2026-06-13 14:09:04 +02:00
Federico Jaramillo Martinez 53b00c47f9 fix: show sending indicator while uploading attachments
Messages with image attachments could take a moment to appear (large
base64 upload, server-side resize, first-session open) while the composer
cleared instantly, making it look like nothing happened.

Await the send for attachment messages and surface a "Sending…" button
label plus a "Sending your files…" / "Saving your files…" hint, disabling
the composer until the message lands. Plain text messages stay
fire-and-forget so the input frees up instantly.
2026-06-13 13:57:10 +02:00
Federico Jaramillo Martinez d17050e144 feat: add image attachments to the chat composer
Support pasting (Ctrl/Cmd+V), drag-and-drop, and an Attach button to add
PNG/JPEG/GIF/WebP images to a message, with thumbnail previews and
multi-image support.

Attachments are delivered to the session using pi's native ImageContent
format and are run through pi's own resizeImage so they match pi's inline
image limits exactly. Image content now renders inline in the transcript.

A per-message delivery toggle also lets users save attachments into the
workspace `.pi-web/paste` folder and reference them so the agent reads
them with its own tools.

The accepted HTTP upload size is configurable via PI_WEB_MAX_UPLOAD_BYTES
or the maxUploadBytes config value (default 64 MB).

Closes #13
2026-06-13 13:49:39 +02:00
Federico Jaramillo Martinez d66eccc5c0 fix: handle spaced file suggestions 2026-06-11 12:09:27 +02:00
Federico Jaramillo Martinez 9dd59c0f64 fix: show model response errors in chat 2026-06-11 11:51:51 +02:00
Federico Jaramillo Martinez 577594a622 fix: prevent sidebar action menus from being cropped
Use viewport-constrained positioning for sidebar action menus and keep the auth warning test isolated from local models.json config so pre-commit verification is deterministic.
2026-06-11 01:31:56 +02:00
Federico Jaramillo Martinez 5855c443ca Merge remote-tracking branch 'origin/main' 2026-06-10 23:27:23 +02:00
Federico Jaramillo Martinez ef22247d76 fix: preserve remote route during transient reconnects 2026-06-10 23:04:25 +02:00
Federico Jaramillo Martinez b99143f757 fix: preserve legacy session route lookups 2026-06-10 22:42:55 +02:00
Federico Jaramillo Martinez 71510444c4 Merge remote-tracking branch 'origin/main' into investigate/issue-12-session-dir
# Conflicts:
#	src/client/src/api.ts
#	src/client/src/api/clients.ts
#	src/client/src/api/federatedRouteContract.test.ts
#	src/server/sessions/piSessionService.ts
#	src/server/sessions/sessionRoutes.ts
2026-06-10 20:43:10 +02:00
Federico Jaramillo Martinez 06052ea5ec fix: respect Pi session directories by cwd 2026-06-10 20:26:51 +02:00
Federico Jaramillo Martinez 4bc390a33a fix: keep machine restore snappy 2026-06-09 17:06:18 +02:00
Federico Jaramillo Martinez 65b4c76513 fix: preserve selected chat text on copy 2026-06-09 15:41:48 +02:00
Federico Jaramillo Martinez c57f24dfa5 feat: support machine-specific plugins 2026-06-09 15:10:32 +02:00
Federico Jaramillo Martinez 0118e6ebe9 fix: keep archived parent sessions visible 2026-06-09 13:40:48 +02:00
Federico Jaramillo Martinez 313dbea34e chore: clarify archived delete capability hint 2026-06-09 12:29:56 +02:00
Federico Jaramillo Martinez fc20b95fed feat: gate session cleanup by runtime capabilities 2026-06-09 11:40:17 +02:00
Federico Jaramillo Martinez a3b5b722c9 feat: add safe session bulk cleanup actions 2026-06-08 17:20:00 +02:00
Federico Jaramillo Martinez b2a79750a3 fix: align machine badge status 2026-06-08 15:44:52 +02:00
Federico Jaramillo Martinez b6166842fe feat: add resizable side panels 2026-06-08 15:41:52 +02:00
Federico Jaramillo Martinez 351ed03bf8 feat: add editable keyboard shortcuts 2026-06-08 14:57:24 +02:00
Federico Jaramillo Martinez f3e19d1463 feat: add keyboard navigation ladder 2026-06-08 13:33:39 +02:00
Federico Jaramillo Martinez f501f9d757 fix: stabilize navigation activity indicators 2026-06-08 13:33:39 +02:00
Federico Jaramillo Martinez a73bcebbd6 feat: simplify desktop navigation 2026-06-06 00:12:38 +02:00
Federico Jaramillo Martinez 9a3f2ce64f feat: make desktop navigation sections collapsible 2026-06-06 00:12:38 +02:00
Federico Jaramillo Martinez f7eff88e00 feat: make refresh control reload the page 2026-06-05 23:40:59 +02:00
Federico Jaramillo Martinez ad963a2391 fix: simplify mobile breadcrumb machine context 2026-06-05 20:43:45 +02:00
Federico Jaramillo Martinez 66c5d0faca fix: right align status bar metrics 2026-06-05 20:35:18 +02:00
Federico Jaramillo Martinez 98cdc29208 fix: streamline status bar context 2026-06-05 20:33:58 +02:00
Federico Jaramillo Martinez b35ce1d3e0 fix: reduce repeated workspace context 2026-06-05 20:26:12 +02:00
Federico Jaramillo Martinez 0d9d124237 fix(plugins): preserve deprecated panel terminal alias 2026-06-05 14:26:35 +02:00
Federico Jaramillo Martinez 3330a5a7fa fix: load gateway plugins before remote plugins 2026-06-05 10:12:52 +02:00
Federico Jaramillo Martinez 4bc00102eb feat(plugins): add workspace file helpers to labels 2026-06-05 10:11:07 +02:00
Federico Jaramillo Martinez 0e64b812dd fix: prefer gateway plugins over remote duplicates 2026-06-05 09:53:33 +02:00
Federico Jaramillo Martinez b9be7de206 feat: load machine-scoped remote plugins 2026-06-05 09:29:48 +02:00
Federico Jaramillo Martinez 9c3dafc4d4 fix: close workspace terminals before deletion 2026-06-04 21:31:39 +02:00
Federico Jaramillo Martinez 30fb9602d6 fix: persist navigation memory per browser tab 2026-06-04 15:57:29 +02:00
Federico Jaramillo Martinez f1c8f1f014 refactor(plugin-api): clean up workspace panel context 2026-06-04 15:38:18 +02:00
Federico Jaramillo Martinez bd8d1f1f08 feat: keep workspace tab icons visible 2026-06-04 13:50:29 +02:00
Federico Jaramillo Martinez e3533ebf1f feat: add public plugin workspace capabilities 2026-06-04 13:00:25 +02:00
Federico Jaramillo Martinez 93b50e61af feat: add machine setup dialog 2026-06-04 12:12:25 +02:00
Federico Jaramillo Martinez 193c9d0f8f feat: show machine activity indicators 2026-06-04 11:54:21 +02:00
Federico Jaramillo Martinez ed647a359a fix: restore fallback machine navigation after deletion 2026-06-04 11:12:03 +02:00
Federico Jaramillo Martinez b3bb7329bf feat: remember machine navigation 2026-06-04 11:00:58 +02:00
Federico Jaramillo Martinez 4eb95fec7f Merge remote-tracking branch 'origin/main' into review/pr-5-machine-federation-fixes
# Conflicts:
#	src/client/src/api.ts
#	src/client/src/api/clients.ts
#	src/client/src/api/parsers.ts
#	src/client/src/components/PiWebApp.ts
#	src/server/app.ts
#	src/shared/apiTypes.ts
2026-06-04 10:31:23 +02:00
Federico Jaramillo Martinez ccd4a766d9 feat: improve machine navigation controls 2026-06-04 10:22:02 +02:00
Federico Jaramillo Martinez 10d9298662 fix: keep PWA refresh menu above workspace header 2026-06-03 22:56:21 +02:00
Federico Jaramillo Martinez 08f69d09c0 feat: bundle workspace tasks plugin 2026-06-03 22:31:36 +02:00
Federico Jaramillo Martinez fda6fb0eca fix: keep mobile tab badges inline 2026-06-03 21:21:22 +02:00
Federico Jaramillo Martinez 401dab69ad feat: support plugin mobile tab icons 2026-06-03 21:13:35 +02:00