| feat(UI): add apple design skill | 1 个月前 |
| ci(ios): make TestFlight uploads on-demand only TestFlight no longer builds on every v* tag: desktop patch releases ship every few days and testers do not need each one, while the macOS build kept failing unnoticed. workflow_dispatch remains for manual releases, and the docs describe the frozen state. | 7 小时前 |
| chore(tooling): set up husky pre-commit hooks with lint-staged Add husky and lint-staged to enforce code quality on staged files before each commit. Configure lint-staged to run biome fix on TypeScript/JavaScript files and cargo fmt/clippy on Rust files. Restructure npm scripts into separate :ts and :rs variants with combined lint, format, and fix commands for both languages. | 3 个月前 |
| chore: add biome linter and formatter Add @biomejs/biome as the project's linter and formatter with a new biome.json configuration file. Add lint and format npm scripts, reformat all source files to use tab indentation, sort imports alphabetically, and add rel="noopener" to external links. | 3 个月前 |
| chore(release): bump version to 0.11.9 | 7 小时前 |
| chore(release): bump version to 0.11.9 | 7 小时前 |
| ci(ios): make TestFlight uploads on-demand only TestFlight no longer builds on every v* tag: desktop patch releases ship every few days and testers do not need each one, while the macOS build kept failing unnoticed. workflow_dispatch remains for manual releases, and the docs describe the frozen state. | 7 小时前 |
| fix(pdf): reuse dual-pane tiles and spread translation text measurement Dual-pane scrolling rasterized the same tile on both panes and pushed a scroller update on every frame. Share tile bitmaps, skip scroller setState while the mounted window is unchanged, drop the translation pane's whole-page base coat, and spread paragraph measurement across frames. Fix #769 | 1 天前 |
| ci(release): route AtomGit uploads through its overseas edge Default DNS hands GitHub runners a China-domestic address whose route collapses on sustained large uploads. The 120 MB AppImage failed with HTTP 502 on all three attempts, the longest burning 43 minutes, while the 51 MB assets beside it uploaded in 6 seconds. Pin api.atomgit.com, file.atomgit.com, file.gitcode.com and atomgit.com to ATOMGIT_PROXY_IP for the runner's lifetime, but only after curl confirms that address serves a certificate valid for each name, so a retired edge degrades to today's behaviour instead of breaking TLS. The step never fails the job on its own. Log the upload URL host, never its signed path, so the next run shows whether the pin covers the host that actually carries the bulk bytes. Ref #694 | 4 天前 |
| fix(ios): restore the iOS target build Import Arc unconditionally because the exit handler shuts down the agent warm pool on iOS too, and skip the window-target validation on iOS where app::window is compiled out. | 7 小时前 |
| fix(pdf): parse link URLs outside the citation overlay Layout hover code was importing the citation component. The URL parser now lives in lib, and the overlay re-exports it. | 1 天前 |
| fix(agent): open PDF citations whose paths contain spaces Decode percent-encoded vault hrefs before lookup, keep CommonMark angle-bracket destinations as relative links, and open bare PDF paths through the citation jump. Fix #665 | 16 天前 |
| fix(agent): keep context requests outside the annotation cycle The sidebar request receives selection numbers from the caller. Importing the annotation planner pulled a cycle through the agent API and failed dependency-cruiser. | 1 天前 |
| chore(tooling): guard architecture with import-cycle and layering checks - Biome: enable suspicious/noImportCycles (project domain) - dependency-cruiser: no-circular + core-stays-leaf + lib-no-components rules behind pnpm deps:check (requires node 22/24) - drop unused thiserror dependency from the CLI (cargo-machete) | 2 个月前 |
| chore: add .gitattributes to force LF line endings on all platforms The repo stores text as LF, but a checkout with core.autocrlf=true (common on Windows) smudges to CRLF. Biome (LF) and the biome-based pre-commit hook then rewrite the whole working tree, and Git shows phantom repo-wide "modified" churn on every commit. Add .gitattributes with * text=auto eol=lf (plus explicit text/binary rules) so every platform checks out LF regardless of core.autocrlf. Blobs are already LF, so no history rewrite is needed; existing checkouts can refresh with git rm --cached -r . && git reset --hard. | 2 个月前 |
| chore: ignore .spec-workflow scratch directory | 2 天前 |
| docs: clarify commit message rules | 30 天前 |
| docs: add contributing guide and enforce PR screenshot requirements | 17 天前 |
| chore(release): bump version to 0.11.9 | 7 小时前 |
| refactor(core): extract tauri-free foundations into agentero-core crate Move the tauri-independent core modules (error, fs, http, paths, sqlite, usage, background_tasks, blocking and friends) into a new crates/agentero-core crate whose dependency tree never pulls in tauri/wry/tao. src-tauri/src/core re-exports the moved modules so every crate::core path compiles unchanged; telemetry, app_handle and usage commands stay behind due to tauri/posthog coupling. blocking.rs switches from tauri::async_runtime::spawn_blocking to tokio::task::spawn_blocking - the same pool, with all 35 call sites confirmed to run inside async commands. Declare the winreg target dependency for the Windows proxy lookup (target deps do not transfer across crates) and add agentero-core to the bump version sources so its CARGO_PKG_VERSION-based User-Agent stays in lockstep. | 1 个月前 |
| docs(readme): 添加项目简介及使用说明 - 新增项目Motif的详细介绍,突出本地研究库特性 - 添加项目徽章展示GitHub状态和技术栈信息 - 说明项目解决传统参考管理的痛点及主要功能 - 增加项目截图展示界面和工作流程 - 提供快速启动步骤及依赖环境说明 - 介绍项目目录结构和官方文档链接 - 补充项目贡献指南和许可协议说明 chore(license): 添加MIT许可证文件 - 新增完整MIT许可证文本 - 确保项目使用遵循开源许可规范 | 3 个月前 |
| docs: reword README tagline and drop duplicate title heading | 17 天前 |
| docs: reword README tagline and drop duplicate title heading | 17 天前 |
| fix(bindings): keep generated bindings.ts out of biome formatting lint-staged ran biome over the regenerated bindings.ts, adding trailing commas and leading pipes that made the drift test's whitespace-only normalization fail. Exclude the generated file from biome (formatting and linting) and restore the raw generator output so export_typescript_bindings passes again. | 1 个月前 |
| chore(deps): add Plate.js registry and editor dependencies Register the Plate UI component registry in components.json and add @platejs/basic-nodes, @platejs/ai, platejs and related Radix UI primitives required by the editor components. | 3 个月前 |
| feat(catalog): support manual paper metadata editing Add paper_update_meta with patch semantics (only provided fields change, empty strings clear), mark rows meta_source=manual, and append new titles to NOTES.md aliases. Wire up an Edit Metadata dialog shared by the Paper Info panel pencil button and a new Library row context menu; sync updated rows into the library table and open tabs. | 1 个月前 |
| build: lint-staged 只检查本次 staged 文件 TS 一项原先写作 () => "pnpm run fix:ts",thunk 丢掉了 lint-staged 传入的文件 列表,实际执行的是 biome check --write .——每次提交都要全仓过一遍。后果是任何人 只要工作区里有无关文件处于中间态(并行开发、未完成的重构),所有提交都会被拦住, 这与 staged-linter 的用途相反。 改为返回字符串命令,lint-staged 会把 staged 路径追加到命令末尾。Rust 一项保留 thunk,因为 cargo fmt 按 crate 而非按文件工作。 | 2 个月前 |
| perf(editor): skip offscreen Markdown blocks while reading Long notes reflowed and repainted the whole document on every pane resize and scroll, making reading and side-rail drags janky (#702). While the live editor is unfocused, apply content-visibility: auto to top-level block wrappers so Chromium skips layout and paint for offscreen blocks; contain-intrinsic-size: auto caches each block's real height after first render. Focus disables it, so editing, caret and IME keep their uncontained semantics. Gated to non-WebKit engines (WebView2 etc.) since per-element content-visibility is slower on WebKit. Fix #702 | 12 天前 |
| chore(release): bump version to 0.11.9 | 7 小时前 |
| fix(pdf): reuse dual-pane tiles and spread translation text measurement Dual-pane scrolling rasterized the same tile on both panes and pushed a scroller update on every frame. Share tile bitmaps, skip scroller setState while the mounted window is unchanged, drop the translation pane's whole-page base coat, and spread paragraph measurement across frames. Fix #769 | 1 天前 |
| fix(pdf): reuse dual-pane tiles and spread translation text measurement Dual-pane scrolling rasterized the same tile on both panes and pushed a scroller update on every frame. Share tile bitmaps, skip scroller setState while the mounted window is unchanged, drop the translation pane's whole-page base coat, and spread paragraph measurement across frames. Fix #769 | 1 天前 |
| feat(ui): install AI Elements and peer shadcn components Add the AI Elements registry under src/components/ai-elements, pull in required peers, bump TypeScript to ES2022, and relax a11y lint on vendor registry files. | 3 个月前 |
| chore: add biome linter and formatter Add @biomejs/biome as the project's linter and formatter with a new biome.json configuration file. Add lint and format npm scripts, reformat all source files to use tab indentation, sort imports alphabetically, and add rel="noopener" to external links. | 3 个月前 |
| fix(pdf): reuse dual-pane tiles and spread translation text measurement Dual-pane scrolling rasterized the same tile on both panes and pushed a scroller update on every frame. Share tile bitmaps, skip scroller setState while the mounted window is unchanged, drop the translation pane's whole-page base coat, and spread paragraph measurement across frames. Fix #769 | 1 天前 |