Commit Graph
225 Commits
Author SHA1 Message Date
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
tianma-if 5260fca9ae fix(plugins): fall back to v-prefixed GitHub plugin release tags
Marketplace updates look up the semver tag first, so official plugins
published as vX.Y.Z failed with "GitHub release was not found." Retry
the v-prefixed tag in the instance proxy and the desktop installer.
2026-09-12 11:07:00 +08:00
tianma-if 2cec726f43 feat(ai): stream note generation from the client when the model host allows it
Desktop, Android, and iOS call the configured model API after a short prepare hop so Cloudflare no longer sits in the token path. The web app probes CORS first and direct-connects only when the host allows it; blocked hosts keep using the instance proxy without downloading the API key.
2026-09-11 18:34:55 +08:00
tianma-if f19dba17a9 fix(plugins): install GitHub plugins without the REST release API
When api.github.com returns 401/403/429, download public Release
assets by tag instead of failing the local web update with HTTP 403.
2026-09-11 01:01:17 +08:00
tianma-if 3514a538b7 docs: contrast full-stack open source with Obsidian's open files 2026-09-10 20:49:20 +08:00
tianma-if a4a10a32b9 feat(web): export selected notes as a Markdown ZIP
Add a bulk Markdown ZIP action for selected notes, reuse the existing
readable export layout, and keep the desktop bulk action card visible
when a diagram note is open.
2026-09-10 17:07:46 +08:00
tianma-if cc874cd3f9 fix(sync): keep desktop pull working without a slug inbox
Identify the workspace inbox by stable id, restore it when missing, and apply notebooks before memos so a renamed or deleted inbox cannot abort the whole pull.

Fixes #378
2026-09-10 11:52:01 +08:00
tianma-if 2b3646f609 fix(plugins): check updates without GitHub REST quota
Read the latest Release through the instance (cached 5 minutes),
then the public latest/download URL and raw.githubusercontent.com.
Do not treat one plugin's 403 as a total update-check failure.
2026-09-10 10:45:17 +08:00
tianma-if f63d3cc69f fix(plugins): fall back when GitHub asset downloads fail
Prefer the GitHub API asset-id route after the public release URL fails, and skip re-downloading official plugin packages when the live version already matches.
2026-09-10 09:31:50 +08:00
tianma-if ad9edb1ff8 fix(plugins): install GitHub marketplace plugins through the instance
Desktop install was failing with Failed to fetch because the renderer
fetched GitHub metadata directly. Resolve live official releases and
download Release assets via the current EdgeEver instance, so daily
plugin updates still work without a client-side GitHub API round trip.
2026-09-09 19:26:11 +08:00
tianma-if a853c92350 fix(docker): persist credential encryption secrets on the data volume
NAS GUI upgrades that drop container environment variables could leave
login working while AI and object-storage credentials could no longer be
encrypted. Persist the encryption root on /data, generate one when an
existing instance has no secret, and stop the add-service form from
looking fillable when encryption is still unavailable.

Fixes #370
2026-09-09 18:11:58 +08:00
tianma-if 17f10968a7 fix(api): allow packaged desktop origin in CORS
v1.63.0 moved the packaged renderer from file:// (Origin null) to
edgeever-app://app. Instance CORS still only allowed local Vite and
null, so desktop login failed as network_unreachable.
2026-09-09 16:54:13 +08:00
tianma-if a423c92c9c fix(sync): handle deleted notebook references
Fixes #371
2026-09-09 12:51:22 +08:00
tianma-if 466161284d feat(diagram): add org, timeline, and fishbone layouts
Give mind maps real whole-map families for brace, org, hanging tree,
timeline, and fishbone, and let flowcharts pick forest, ink, or paper.
2026-09-08 20:20:18 +08:00
tianma-if 87a6e64a6d feat(diagram): add structure gallery and named color strips
Mind maps pick a whole-map structure (balanced maps and right-growing
logic charts) from thumbnail cards, and a named 6-color palette from
vivid/classic strips. Flowchart notes keep a dedicated paper surface.
2026-09-08 18:36:49 +08:00
tianma-if 748be71645 feat(diagram): split structure from color and stop canvas clipping
Mind maps now pick structure (underline map vs boxed topics)
independently from color (forest green vs spectrum). The editor
sizes the paper to every node so two-sided branches are not
cropped while editing.
2026-09-08 18:01:11 +08:00
tianma-if caa5967580 feat(mcp): add semantic diagram editing 2026-09-07 14:49:04 +08:00
tianma-if 1b804b165d feat: improve diagram reading and layout across clients 2026-09-07 10:20:46 +08:00
tianma-if 559768034e feat(mcp): support semantic diagram note creation 2026-09-06 20:48:53 +08:00
tianma-if 7f84ee4349 feat: label diagram notes in memo list 2026-09-06 17:09:15 +08:00
tianma-if d400371841 feat: add editable mind map and flowchart notes 2026-09-05 15:44:48 +08:00
tianma-if 245ac044b6 feat: learn scoped filing and tagging preferences in Paw mode 2026-09-05 12:22:02 +08:00
tianma-if 91bd1247c2 fix: avoid shared GitHub asset rate limits 2026-09-05 00:52:11 +08:00
tianma-if 2351d36628 refine companion discovery notifications 2026-09-05 00:31:18 +08:00
tianma-if 69a7facd75 feat: streamline companion discovery notifications 2026-09-04 17:25:57 +08:00
tianma-if 12fca0db5f perf(plugins): keep public requests off the backend when possible 2026-09-04 13:35:27 +08:00
tianma-if 7da54257f7 fix: report instance deployment source 2026-09-04 11:58:24 +08:00
tianma-if 878e90fb9e fix: derive OSS credential encryption from authentication 2026-09-04 10:52:31 +08:00
tianma-if a076592076 fix(companion): require default model before enable 2026-09-04 01:43:57 +08:00