Commit Graph
253 Commits
Author SHA1 Message Date
tianma-if caba871c36 fix(api): rebuild browser mirrors after a demo reset
The seed clears the changelog before deleting notes, so a caught-up browser keeps the old copies. A new workspace sync identity makes that browser replace its mirror with the seeded snapshot.
2026-09-30 00:46:54 +08:00
tianma-if 871a9325d5 feat(web): replace the AI dialog with a companion sidebar
Notes open a right-hand assistant that can attach files and asks before changing note content. Desktop can talk to a local ACP agent without handing over the note directory.
2026-09-29 22:19:55 +08:00
tianma-if 53290535ff feat(web): share note size, line height, and palette
Keep the native editor theme, store column width on this device, and publish account font size, line height, palette, and custom CSS to the editor, public shares, and WeChat paste. Highlight custom CSS with CodeMirror.
2026-09-29 16:20:57 +08:00
tianma-if 0c37516e3f feat(diagram): default mind maps and flowcharts to a plain theme
Add 素简 as the selectable default, with graphite emphasis instead of solid black. Unset diagrams render in that theme, and every mind map, flowchart, and architecture canvas uses the note editor surface while named themes keep their node colors.
2026-09-27 17:36:09 +08:00
tianma-if e825872bdc fix(extension): save a clipped image in the first note version
Create the note and its picture together, and keep a Google image search source down to the query instead of the full tracking URL.
2026-09-27 13:15:04 +08:00
tianma-if 5fe220704e refactor(settings): remove AI tag prompt configuration and product hunt link 2026-09-27 11:28:13 +08:00
tianma-if 4ef440ffaa style(demo): remove emoji icons from seed note titles and headings 2026-09-27 11:09:14 +08:00
tianma-if 587b0583c2 feat(demo): add infographic and structured table notes, refresh overview 2026-09-27 10:54:53 +08:00
tianma-if e615489d91 fix(api): let memo writers attach files to the notes they create 2026-09-27 00:03:44 +08:00
tianma-if 5dee03b2de fix(api): delete notebooks with null slugs 2026-09-25 18:42:48 +08:00
tianma-if f763ce814f fix(plugins): remove arbitrary AI output token ceiling 2026-09-25 00:05:36 +08:00
tianma-if 41d827e58a feat(plugins): raise AI output request ceiling to 32768 2026-09-25 00:03:38 +08:00
tianma-if c41869d772 fix: switch infographic development history to timeline 2026-09-24 23:09:33 +08:00
tianma-if 2b672ec23c feat: use AI SDK agent for infographic editing 2026-09-24 22:34:27 +08:00
tianma-if c3de2cd102 feat: add AI-driven infographic notes 2026-09-24 21:19:23 +08:00
tianma-if c7f6e342be feat(web): add table attachments and a public entry form
Store attachment files in object storage and keep only resource references in the table. A separate public form link appends one row without showing existing records.
2026-09-23 13:03:12 +08:00
tianma-if f1949e795f feat(sharing): show the author's built-in font on public shares
Store the selected built-in note font on the account and apply it to the shared note body. System and custom font names keep the default face, so a share downloads a font only after one is chosen.
2026-09-23 00:09:28 +08:00
tianma-if c2a26b23ac feat(web): add a beta structured table note
Store typed records in the note body and edit them as a grid on web and desktop. Phones and iOS stay read-only so the record model is not overwritten.
2026-09-23 00:00:44 +08:00
tianma-if 968ac71aa6 fix: delete empty child notebooks with their parent
A parent notebook stayed after repeated deletes when it only contained empty children. Remove that empty subtree together, and keep the tree when any note is still inside.
2026-09-22 20:52:50 +08:00
tianma-if 207372c209 fix(demo): persist architecture auto layout 2026-09-21 23:47:56 +08:00
tianma-if e2fda4f9a8 fix(demo): restore nested mind map branches 2026-09-21 23:34:20 +08:00
tianma-if a6297b4931 fix(demo): simplify architecture diagram routing 2026-09-21 22:53:17 +08:00
tianma-if 66fdc6507c feat(demo): redesign architecture example 2026-09-21 22:48:20 +08:00
tianma-if 90c768fd95 feat(demo): add flowchart and mind map examples 2026-09-21 22:39:59 +08:00
tianma-if 8116844f9f feat(diagram): elevate architecture diagram visuals and palette
- Add engineering dot grid background for architecture diagrams on X6 canvas
- Add boundary header badges and translucent container fill
- Add pill badge labels with subtle borders and shadows for diagram connectors
- Refine component palette with Nordic steel slate for clients and deep indigo for frontend
- Add official multi-client and serverless architecture demo notes in seed data
2026-09-21 22:32:02 +08:00
tianma-if 6cf0d4450d fix(ai): preserve explicitly requested diagram kind 2026-09-21 18:30:27 +08:00
tianma-if 6e0d9c570c feat(ai): keep generated edge IDs out of create_diagram_memo Agent input 2026-09-21 17:53:44 +08:00
tianma-if 086d85d9d7 fix(notebooks): collapse duplicate inbox notebooks from 0046
0046 only looked for nb_inbox or {workspace}_inbox, so a historical slug inbox got a second empty 等待分类. Keep the notebook with notes, soft-delete extras, and unique-index one active inbox per workspace.
2026-09-19 16:06:16 +08:00
tianma-if dcfd11468d feat(sharing): add optional password protection for public note shares
Allow owners to turn on an auto-generated access password when sharing a note. Visitors must unlock the share page before reading the note or its attachments; existing public links stay open until a password is enabled.
2026-09-17 14:44:43 +08:00
tianma-if f7c6bf5c05 fix(ai): keep companion prepare and tools off the Worker AI graph
Move turn preparation out of companion-runtime and execute tools without
the AI SDK so Cloudflare startup no longer loads model runtimes.
2026-09-16 23:21:57 +08:00
tianma-if f5e9bc1a44 feat(ai): call model APIs from the client instead of the worker
Keep Cloudflare requests short for Agent, tag suggestions, plugin generate, and Paw checks. The instance only prepares credentials and executes tools; CORS failures still fall back to the existing proxy.
2026-09-16 22:45:07 +08:00
tianma-if fc4a94be44 fix(ai): keep Agent tool schemas compatible with OpenAI-style calling
OpenAI-compatible providers reject oneOf, anyOf, and const in tool JSON
Schema. Agent forwarded MCP schemas unchanged, so those models failed
before the first token. Flatten the diagram and template schemas, reject
incompatible keywords when the catalog loads, and map provider HTTP
errors to specific copy.
2026-09-16 21:24:19 +08:00
tianma-if 36f11471d3 feat(ai): give Agent a timeline, pinned context, and resumable runs
Show tool receipts in chat, pin notes with @, wire saved memory, and
let interrupted Agent turns continue. Split tool-side narration from
the user-facing answer.
2026-09-16 16:58:27 +08:00
tianma-if 5d0f28cee9 feat(ai): apply Agent merge, move, and tag writes immediately
Agent mode now executes available write tools without confirmation cards. Merge and body edits still require a complete read first.
2026-09-16 12:56:23 +08:00
tianma-if aa1e38b6f5 feat(ai): let Agent use the open note, edit diagrams, and manage templates
Pass the current note body into Agent focus so diagrams follow the open note. Enable in-place diagram edits plus note templates and AI instructions, including deletes, without confirmation cards.
2026-09-16 12:43:31 +08:00
tianma-if 7d25d45620 fix(ai): open Agent note links even when memo_ is dropped
Restore the memo_ prefix on #memo= hashes, parse resolved URLs, and hold the selected note so the list does not snap back to the current editor.
2026-09-16 11:36:56 +08:00
tianma-if e1ec6d8be4 fix(ai): create real mind-map notes from Agent requests
Give Agent create_diagram_memo and get_diagram so 思维导图, flowcharts, and architecture diagrams become editable diagram notes instead of Markdown outlines.
2026-09-16 11:17:38 +08:00
tianma-if 69b9b982dc fix(ai): search recent notes by date and shrink Agent headings
Agent recency questions now use createdAfter/updatedAfter, keep timestamps on search results, and accept YYYY-MM-DD bounds. Chat headings are compacted so notebook groups no longer dominate the dialog.
2026-09-16 10:42:43 +08:00
tianma-if dd3237d794 fix(ai): auto-apply note writes and follow the latest Agent reply
Create, update, and trash notes without a confirmation card. Keep the transcript pinned to the newest reply while it streams, and show a spinner instead of the generating status line.
2026-09-16 00:40:08 +08:00
tianma-if 5b523eb84a fix(ai): keep Agent lookups from locking onto the open note
Treat the current note as editor context, not a search filter. Named notebooks resolve through find_notebooks, follow-ups keep sourced history, and the chat chrome no longer shows model names, empty waiting copy, or a second stop button.
2026-09-16 00:26:11 +08:00
tianma-if a54f297ec6 feat(ai): add Agent mode to the in-app assistant
Reuse companion MCP tools inside the existing AI assistant. Instruction mode stays a single-turn rewrite; Agent mode searches and organizes notes, renders replies as Markdown with clickable note links, and confirms writes. Closing the panel starts a fresh thread, with an opt-in resume of the last chat.
2026-09-15 22:25:57 +08:00
tianma-if 6d6b1704a0 docs: treat /api/openapi.json as a reachability probe
Stop advertising the stale OpenAPI snapshot as an API catalog. Keep the URL for deploy checks and point agents at MCP.
2026-09-15 15:59:21 +08:00
tianma-if b346400f6a test: align coverage with Japanese locale and create-note layout
Update source and locale tests that still treated Japanese as unmatched English and pinned the previous fixed-width New note control.
2026-09-14 18:19:31 +08:00
tianma-if 98dca9baf2 fix(i18n): localize factory AI prompt seeds in Japanese
Japanese UI was falling back to English seed copy only because the catalog had no ja translations. Add Japanese names, descriptions, and instructions, and resolve ja the same way as zh-CN and en-US.
2026-09-14 15:48:05 +08:00
tianma-if 760e82ab50 fix(i18n): fall unmatched locales back to English
Unknown browser and system languages now resolve to English instead of
Simplified Chinese, and Japanese App Store / Play listing copy is kept
in store-assets for console publishing.
2026-09-14 10:56:53 +08:00
tianma-if 0e5be33a44 feat(plugins): sync the install list across Web and desktop
Keep plugin and theme membership on the workspace so browsers and desktop apps can re-download verified packages. Settings, secrets, and native mobile runtimes stay out of this catalog.

Related Issue: #396
2026-09-14 10:41:56 +08:00
tianma-if 4b4b5df8c1 fix(i18n): give editor themes original four-character names
Keep Chinese labels at four characters without a shared suffix, and stop reusing competitor theme names.
2026-09-13 23:00:41 +08:00
tianma-if bb43940135 feat(ai): replace social starter prompts with note workflows
Keep six factory prompts, swap Xiaohongshu and Twitter presets for extract-todos and continue-writing, and use four-character Chinese names.
2026-09-13 22:11:35 +08:00
tianma-if dfdcfa11e4 feat(web): give paper themes independent palettes and tidy theme UX
Each paper layout now carries its own colors, ornaments, and reading rhythm instead of mixing with native green. Drop Classic Blue & White, unify preset names, move theme switching fully into the editor toolbar, and keep settings for custom palettes only.
2026-09-13 18:56:14 +08:00
tianma-if b38750eda5 feat(web): play common video attachments inline
Serve browser-native video with the same Range streaming path as audio, and allow collapsing the player without leaving the note.

Fixes #392
2026-09-12 15:35:24 +08:00