Commit graph

560 commits

Author SHA1 Message Date
a9d0df0b50 fix: remove 'Preview is read-only' click hint toast
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
_handleMarkdownPreviewClickHint() now no-ops. The toast appeared after
3 rapid clicks in the markdown preview and told the user to click Write to
edit — annoying for users who click-drag to highlight while reading. Users
self-hosting Odysseus know how preview/write modes work.
2026-07-07 13:31:40 -04:00
f0031eac11 fix: edit-message textarea now fills full message width
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
.msg-user has width:fit-content which collapses when body content is replaced
by a textarea. Added .msg-user.editing CSS rule with width:85% !important,
and JS adds/removes 'editing' class during edit flow.
2026-07-07 12:53:03 -04:00
c93c14ece9 fix: zoom-aware getBoundingClientRect positioning for all dropdowns, menus, pickers, and overlays
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
app.js: overflow plus-menu positionMenu() — divide r.left/r.top by zoom
cookbookRunning.js: hamburger dropdown — use window.innerWidth - (rect.right/z)
cookbookServe.js: 5 fixes — toolbar dropdown, launch-more, split-arrow, GPU popup, saved-menu
skills.js: kebab tool menu — divide rect bounds by zoom
colorPicker.js: picker position() — divide rect coords by zoom
emojiPicker.js: picker open — divide rect coords by zoom
theme.js: zone highlights — divide all rect values by zoom
2026-07-07 12:21:41 -04:00
5f13f7b3c9 feat: 'Send to Chat' button in document editor
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
Adds a 'Chat' button to the left of the Save button in the document
editor footer. Clicking it injects a reference into the chat textarea:
[Title](#document-<id>) — <120-char snippet>...

The reference is not the full document content — just a title link
with opening snippet. The user can then send it or edit the message
before sending. This is the first step toward making documents feel
like first-class citizens in agent chat.
2026-07-07 11:49:24 -04:00
4d3cf1a5f9 fix: zoom-aware dropdown positioning in cookbook hamburger menus
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
getBoundingClientRect() returns zoom-scaled coordinates but
window.innerWidth does not. With ui-scale-125 active, the right-edge
calculation (window.innerWidth - rect.right) mixed coordinate spaces,
causing dropdowns to appear displaced from their hamburger buttons.

Divide window.innerWidth by the computed zoom factor to match the
rect coordinate space. Fixes both cookbookRunning.js (Active tab)
and cookbookServe.js (Serve tab).
2026-07-07 11:30:22 -04:00
185667954c fix: zoom-aware window constraints — prevent modals overflowing viewport after ui-scale change
Some checks are pending
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
CSS: added comprehensive zoom compensation for ALL modal-content
variants (memory, tasks, preset, doclib, gallery, notes-pane,
research, compare, email-lib) and a safety net for user-resized
windows carrying inline height styles.

JS (windowResize.js): _uiZoom() helper reads computed zoom from :root.
Restore path divides saved localStorage dimensions by zoom factor.
Resize-move viewport clamps use zoom-adjusted vh/vw so dragging
never pushes the window beyond the visible area.

Also added docs/improvement-tasks.md as the Ulysses task board.
2026-07-07 11:16:26 -04:00
ea201ab4b0 fix: always show Scan button in Serve tab; invalidate cache after download
Some checks are pending
CI / Focused test guidance (report-only) (push) Waiting to run
CI / Python syntax (compileall) (push) Waiting to run
CI / JS syntax (node --check) (push) Waiting to run
CI / Python tests (pytest) (push) Waiting to run
Container scan / hadolint (Dockerfile lint) (push) Waiting to run
Container scan (Trivy) / Trivy (image scan, advisory) (push) Waiting to run
Container scan (Trivy) / Trivy (image scan + SARIF upload) (push) Waiting to run
Dependency review / dependency-review (PR gate) (push) Waiting to run
Dependency review / pip-audit (advisory) (push) Waiting to run
ci / docker publish / build (amd64) (push) Waiting to run
ci / docker publish / build (arm64) (push) Waiting to run
ci / docker publish / merge manifest + tag (push) Blocked by required conditions
Secret scan / gitleaks (push) Waiting to run
Workflow security / actionlint (push) Waiting to run
Workflow security / zizmor (Actions SAST) (push) Waiting to run
- Added persistent Scan button to the Serve tab toolbar (was only shown
  in empty state, making it impossible to refresh when localStorage had
  cached results)
- Hooked into background poll to clear model scan cache (key:
  cookbook_cached_models_scan_v1) when downloads transition to done,
  so the Serve tab doesn't show stale data after a download completes

Event handler for #hwfit-cache-scan already existed in the codebase but
the button element was never rendered in the HTML template.
2026-07-06 21:13:46 -04:00
holden093
0dc98ec9b9
fix(ui): prevent race condition in default chat model dropdown init (#5024)
Setting epSel.value triggered an async change event whose handler
called refreshModels('') — wiping the correct model selection that
refreshModels(settings.default_model) had just applied moments earlier.
The dropdown silently fell back to the alphabetically-first model
(deepseek-v4-flash instead of qwen-3.6-35B-A3B).

Moved the change listener registration to after the settings block
so the async change event fires before any listener exists. The
utility and teacher sections already followed this pattern.
2026-07-02 17:05:55 +02:00
pewdiepie-archdaemon
dc3530b8fa Show fallback model in picker 2026-07-01 13:53:51 +00:00
pewdiepie-archdaemon
2918739489 Fix merged test regressions 2026-07-01 11:12:55 +00:00
pewdiepie-archdaemon
a07bbeccf5 Repair document tool args and metrics cleanup 2026-07-01 10:15:45 +00:00
pewdiepie-archdaemon
39eabbb27a Merge remote-tracking branch 'origin/dev'
# Conflicts:
#	routes/document_routes.py
2026-07-01 10:11:22 +00:00
pewdiepie-archdaemon
d2959c1ae8 Stabilize chat and cookbook workflows 2026-07-01 10:09:25 +00:00
RaresKeY
d85afd5d72
fix(agent): preserve bare email tool parity (#5075) 2026-06-30 19:20:56 +01:00
pewdiepie-archdaemon
d8e76003f1 Hide font size in markdown preview 2026-06-30 13:57:07 +00:00
pewdiepie-archdaemon
6127e43113 Preserve HTML email quote history 2026-06-30 12:48:47 +00:00
pewdiepie-archdaemon
0cdbdf4186 Fallback model picker to available model 2026-06-30 11:56:36 +00:00
pewdiepie-archdaemon
baecea2681 Keep email composer open during fast edits 2026-06-30 11:54:34 +00:00
pewdiepie-archdaemon
4f387e089a Speed up email composer typing 2026-06-30 11:49:20 +00:00
pewdiepie-archdaemon
b5ea5a1607 Preserve quoted email history during AI edits 2026-06-30 10:52:25 +00:00
pewdiepie-archdaemon
7854298eae Write email replies into open composer 2026-06-30 10:48:08 +00:00
pewdiepie-archdaemon
e131245c91 Merge remote-tracking branch 'origin/dev' 2026-06-30 10:26:46 +00:00
pewdiepie-archdaemon
838cacf132 Fix task activity scrolling and background spam 2026-06-30 08:16:19 +00:00
pewdiepie-archdaemon
a72ec0c116 Show thumbnails on past research cards 2026-06-30 08:00:01 +00:00
pewdiepie-archdaemon
b8338b2399 Improve document agent streaming and chat metrics 2026-06-30 05:14:41 +00:00
pewdiepie-archdaemon
ec8ef3ec27 Auto scan cookbook hardware when cache is missing 2026-06-30 02:55:25 +00:00
pewdiepie-archdaemon
80ac782cdc Gate email auto translate behind active chat 2026-06-30 02:08:57 +00:00
pewdiepie-archdaemon
c987200616 Fix incognito agent mode and cookbook tmux preview 2026-06-30 01:47:48 +00:00
pewdiepie-archdaemon
a51f65e9ba Lazy load startup task and email work 2026-06-30 01:28:08 +00:00
pewdiepie-archdaemon
24c2c43770 Speed up task activity load 2026-06-30 01:16:41 +00:00
pewdiepie-archdaemon
a87d0bf2d6 Add task email output sender controls 2026-06-30 00:34:31 +00:00
red person
387f95187e
Ignore invalid harmonize mask layers (#1829) 2026-06-29 19:16:26 +01:00
red person
00dfd2d47a
Keep snap helper safe without context (#1828) 2026-06-29 18:54:44 +01:00
pewdiepie-archdaemon
ff6fd3eaa7 Fix task status toggle hit target 2026-06-29 13:55:30 +00:00
pewdiepie-archdaemon
783ea99bd0 Show cached model scan failures 2026-06-29 12:27:56 +00:00
pewdiepie-archdaemon
89119a8cea Persist email AI reply context notes 2026-06-29 11:30:25 +00:00
pewdiepie-archdaemon
2a28bb2729 Fix added models probe button 2026-06-29 11:20:32 +00:00
pewdiepie-archdaemon
a6b6a22de7 Clarify empty AI reply errors 2026-06-29 10:07:48 +00:00
pewdiepie-archdaemon
b712a0a9cb Reuse open email drafts for agent replies 2026-06-29 09:18:26 +00:00
pewdiepie-archdaemon
5d5500fbb3 Keep open editor drafts in chat context 2026-06-29 03:10:42 +00:00
pewdiepie-archdaemon
ff6359ae81 Restore cookbook download task progress 2026-06-29 03:02:58 +00:00
pewdiepie-archdaemon
4a7c03d536 Link gallery uploads back to chat 2026-06-29 02:34:11 +00:00
pewdiepie-archdaemon
e2c8b8eb37 Allow stalled chat uploads to be cancelled 2026-06-29 02:06:39 +00:00
pewdiepie-archdaemon
b419caf9f7 Show chat uploads in gallery immediately 2026-06-29 01:57:35 +00:00
pewdiepie-archdaemon
402a2771b3 Persist upload OCR captions in gallery 2026-06-29 01:45:05 +00:00
pewdiepie-archdaemon
3b6d771be9 Restore chat thumbnails and gallery OCR captions 2026-06-29 01:19:50 +00:00
pewdiepie-archdaemon
4d90eb3d44 Show overlays during bulk email delete 2026-06-28 23:42:53 +00:00
pewdiepie-archdaemon
240768a7a1 Show email delete overlay before request 2026-06-28 22:41:09 +00:00
pewdiepie-archdaemon
1e78ac999d Show busy spinner while deleting email 2026-06-28 22:19:32 +00:00
pewdiepie-archdaemon
4143bfaa2a Clear stale chat stream indicators 2026-06-28 22:06:20 +00:00