Commit graph

331 commits

Author SHA1 Message Date
Danila Poyarkov 38e80a4567
Merge branch 'master' into mcp-v2-webmcp 2026-09-15 19:55:49 +03:00
Danila Poyarkov 953171dea1 refactor(settings): finish shared section migration
Use SettingsSection across Settings, including header actions. Delete SettingsSectionHeader, use shared diagnostic groups and retention controls, and remove the model provider's one-off styles.
2026-09-15 19:45:30 +03:00
Danila Poyarkov b64d1b593c fix(settings): refresh select labels and unify controls
Render selected labels from reactive options rather than cached menu text. Refine action-row hover and cursor states, add a connection-test icon, simplify media credentials, and share semantic external links across Settings. Cover locale switching and link destinations with focused regressions and Storybook states.
2026-09-15 19:20:30 +03:00
Danila Poyarkov 99e7e1909e refactor(settings): share section layout and polish General
Use a slot-based section for consistent spacing and accessible headings. Align selectors, simplify translated copy, and separate experimental rendering and reload feedback. Keep section states in Storybook.
2026-09-15 18:57:08 +03:00
Danila Poyarkov b0dfde74f5 fix(settings): standardize save feedback and deletion guards
Share persistent alerts, distinguish partial persistence from validation errors, preserve model identity on retries, and apply the store's deletion eligibility before clearing credentials. Document toast, field-error, alert, and Storybook ownership.
2026-09-15 17:53:30 +03:00
Danila Poyarkov ea4b8e4b97 feat(settings): unify preferences and integration editors
Unify Settings navigation, credential drafts, translated form validation, and appearance controls. Add explicit WebMCP access modes and searchable MCP tool permissions while preserving execution and credential safeguards.
2026-09-15 16:34:05 +03:00
Danila Poyarkov 9973bd2f18 test: replace legacy demo snapshots with current coverage 2026-09-14 01:20:56 +03:00
Danila Poyarkov fdf04c35e5 feat(automation): expose reviewed tools through WebMCP
Register inspection and atomic editing tools through document.modelContext with input validation, result bounds, captured targets, cancellation guards, and workspace cleanup. Verify native browser discovery and cross-page undo.
2026-09-14 01:16:23 +03:00
Danila Poyarkov 4194684765 fix: honor ruler visibility on the overlay canvas 2026-09-14 01:12:26 +03:00
Danila Poyarkov 31d886ca27 fix: preserve replacement documents after demo preparation 2026-09-14 01:12:26 +03:00
Danila Poyarkov e0012fb165 Merge remote-tracking branch 'origin/master' into demo-final-review 2026-09-14 01:10:54 +03:00
Danila Poyarkov 2ff9c34d17 Merge remote-tracking branch 'origin/master' into browser-history-contracts 2026-09-14 00:46:59 +03:00
Danila Poyarkov 21ecce1f38 feat: assemble an editable demo document
Compose announcement, typography, and paint workbenches with native linked components and editable effects. Preserve the original examples on a reference page.

Wait for the canvas and existing fonts before layout, fit demo pages on first visits, and preserve user viewports thereafter.
2026-09-14 00:36:53 +03:00
Danila Poyarkov 3ea63ad09f fix: refresh Undo and Redo command availability
Publish committed history changes independently of scene mutations so menus observe history recorded after the final draw. Align the assets regression with the documented top-left default.
2026-09-14 00:25:36 +03:00
Danila Poyarkov 4077dcbd44 fix: preserve authored instance sizing through synchronization 2026-09-14 00:24:52 +03:00
Danila Poyarkov 4340f864a4 test(properties): group corner specs by domain 2026-09-13 14:52:20 +03:00
Danila Poyarkov eb38da0d08 fix(properties): preserve shared corner bindings in collapsed controls 2026-09-13 14:45:26 +03:00
Danila Poyarkov df28cf5832 chore: update property controls with master 2026-09-13 14:11:22 +03:00
Danila Poyarkov 7af5e05f9c test(snapping): verify pixel rounding without guides 2026-09-13 14:02:16 +03:00
Danila Poyarkov de6c0efc00 fix(renderer): preserve proportions of FIT image fills 2026-09-13 13:48:11 +03:00
Danila Poyarkov 0dd1014c2a fix(properties): simplify Effect styles and equivalent corners 2026-09-11 03:27:27 +03:00
Danila Poyarkov 89b60b9870 fix(clipboard): preserve typed selection data across copy and paste 2026-09-11 02:59:31 +03:00
Danila Poyarkov b6f015a9f6 fix: address Select forwarding and MCP readiness review 2026-09-10 23:54:03 +03:00
Danila Poyarkov a4a916c97a test: seed motion preferences through Playwright storage state 2026-09-10 23:24:06 +03:00
Danila Poyarkov cf86685c51 test(motion): cover legacy preferences and mobile Off mode 2026-09-10 23:13:31 +03:00
Danila Poyarkov 70341c33a1 feat(settings): centralize motion policy and add animation preference 2026-09-10 23:10:24 +03:00
Danila Poyarkov cc99e6ecb3 fix(dialog): honor reduced motion over state animations 2026-09-10 22:40:19 +03:00
Danila Poyarkov d3b8942dcc test(properties): refresh verified panel snapshots 2026-09-10 22:29:45 +03:00
Danila Poyarkov ccb9dcdd5b test(chat): describe streaming animation coverage accurately 2026-09-10 21:41:11 +03:00
Danila Poyarkov 7f80296c3b fix(ui): preserve focus for composed icon triggers 2026-09-10 21:41:10 +03:00
Danila Poyarkov 608cbc9960 fix(chat): animate inserted Markdown lists and code lines 2026-09-10 19:49:37 +03:00
Danila Poyarkov 3d74f52344 fix(properties): simplify style controls and anchor variable pickers 2026-09-10 19:49:37 +03:00
Danila Poyarkov eb277dd2a9 fix(settings): stabilize model editing and animate dialogs 2026-09-10 19:49:36 +03:00
PAVEL TKACHEV 6e74ad2a51
fix(pen): honor layout and sizing defaults (#652)
Fixes #564.
2026-09-10 17:02:56 +03:00
Danila Poyarkov a779edd08a
refactor: scope browser test instrumentation and global types (#667) 2026-09-10 14:26:36 +03:00
Danila Poyarkov 77739c42a4
fix(bindings): resolve modes and preserve edit transactions (#671)
* fix(bindings): capture mode edits and expose unresolved values

* fix(bindings): correct unresolved accessibility metadata

* fix(bindings): distinguish mixed identities from unresolved values
2026-09-10 12:14:04 +03:00
Danila Poyarkov e69ba75c12
refactor(ui): compose shared editor controls (#670)
* refactor(ui): extract shared action and navigation primitives

* refactor(ui): compose settings and libraries with shared tabs

* feat(ui): preserve native activation and toolbar keyboard navigation

* refactor(home): share document entries and accessible input controls

* fix(layers): share virtualized row geometry and selection styling

* refactor(layout): compose spacing and readable dimension controls

* refactor(properties): compose advanced strokes and inline effects

* refactor(ui): reuse actions in page and property controls

* refactor(settings): adopt shared actions without changing workflows

* refactor(ui): share collaboration and provider actions

* refactor(ui): finish shell and paint action composition

* test(ui): restore extracted control and settings coverage

* test(ui): complete workflow extraction coverage

* fix(ui): address review and trim redundant snapshots

* fix(layout): preserve single-step Undo for guides and wrap
2026-09-10 12:09:06 +03:00
Danila Poyarkov 6cec1b2c58
fix: prevent repeated Keychain prompts and isolate native tests (#664)
* fix: prevent repeated Keychain prompts and isolate native tests

* fix: make credential settings contextual and actionable

* fix: refresh credential recovery state in open Settings

* fix: allow retrying credential status checks

* fix: recover credential access after backend panics

* test: centralize native Tauri invocation

* refactor: clarify credential preferences workflow path
2026-09-09 13:41:55 +03:00
Danila Poyarkov 86269ff440 Merge remote-tracking branch 'origin/master' into fix-pr-657 2026-09-08 13:20:09 +03:00
Danila Poyarkov 85eb57559e fix(keyboard): match Figma zoom behavior 2026-09-08 12:29:55 +03:00
Danila Poyarkov b4e479d9d0
feat: persist AI conversations and add chat history (#661)
* feat: persist AI conversations and add chat history

Store transcripts and attachment previews in IndexedDB, separate conversation history from transport lifetime, and add document-aware switching with shared Storybook coverage. Preserve interrupted activity and guard stale writes and async switches.

* test: group chat history tests by domain

* feat: simplify chat history navigation and diagnostics

Use a compact header with searchable document-scoped history and a correctly anchored conversation menu. Move diagnostic copying into the menu with copy-result feedback, and separate Storybook fixtures from composition.

* fix: address chat history review findings

* test: cover harness shutdown and restored chat scrolling

* fix: preserve Portless proxy port in MCP routes

* docs: clarify UI animation conventions

* feat: configure reasoning display and animate disclosure

* fix: separate transcript following from reasoning disclosure

* fix: restore selected chat after document recovery

* refactor: separate chat history persistence and sessions

* style: format reasoning story imports
2026-09-08 11:19:07 +03:00
7ot0m3 992102f3a5 test(keyboard): exercise zoom shortcuts with real input 2026-09-07 10:51:54 +08:00
7ot0m3 ec6c42f0e5 fix(keyboard): route zoom shortcuts to canvas 2026-09-07 10:36:10 +08:00
PAVEL TKACHEV c946337f3d
fix(pen): resolve ordinary variable references (#622)
* fix(pen): resolve ordinary variable references

Recognize nonempty dollar-prefixed variable names while preserving double-dash references and existing bindings.

Add parser regressions, a reproducible .pen fixture, and visual coverage comparing variable references with literal values.

Update the Unreleased changelog for #563.

* test(pen): strengthen variable reference coverage

---------

Co-authored-by: Danila Poyarkov <dev@dannote.net>
2026-09-06 23:50:03 +03:00
Danila Poyarkov 61f11e7d24 fix(ai): surface actionable provider failures
- Classify authentication, access, model, rate-limit, network, and credit errors\n- Preserve the original provider error across the no-output stream consequence\n- Add optional toast actions for opening model settings\n- Consume handled chat send rejections to avoid global unhandled errors\n- Localize provider failure guidance and cover the authentication flow
2026-09-04 16:41:03 +03:00
Danila Poyarkov b9731f6a90 test(chat): isolate domain specs and real LLM runs
- Replace the shared serial page with isolated configured-chat fixtures\n- Split composer, attachment, Markdown, profile, navigation, and response behavior\n- Use Playwright's structured @real-llm tag with a credential-gated config\n- Keep mock stream construction and page operations in focused helpers
2026-09-04 11:50:12 +03:00
Danila Poyarkov 1455fab099 test(chat): isolate real LLM smoke coverage
- Keep deterministic chat tests permanently bound to the mock transport\n- Add an explicit @real-llm Playwright project and package script\n- Skip the paid OpenRouter smoke test clearly when its credential is absent
2026-09-04 11:31:31 +03:00
Danila Poyarkov c3a560d2b9 test(chat): extract browser harness
- Move chat app setup and shared locators into the test helper domain\n- Move mock AI stream construction out of the panel specification\n- Keep the panel behavior suite focused on user-facing assertions
2026-09-04 11:26:30 +03:00
Danila Poyarkov bd24220b9a feat(chat): preserve node attachments in history
- Generalize transcript presentations across image and node attachments\n- Snapshot referenced nodes when sending so history survives graph changes\n- Reuse one attachment card and viewer for both attachment kinds\n- Localize attachment actions and remove image-processing details from the viewer
2026-09-04 10:55:42 +03:00
Danila Poyarkov c5158edc82 fix(chat): redesign Design profile picker
- Give configured profiles a full-width multiline selection surface\n- Show resolved model and provider metadata with a stable selection indicator\n- Keep Vision capability compact and link back to model-role settings\n- Split chat Markdown and profile themes into focused domain files
2026-09-03 20:58:32 +03:00