lllin000_PaperForge/tests/unit
Research Assistant f880d50092 feat: add annotation service
- paperforge/annotation/service.py  create/patch/delete/list/get/export
  - create_annotation()          local annotation with UUID
  - patch_annotation()           comment/color/tags only, enforces readonly guard
  - delete_annotation()          soft delete
  - get_annotation()             single row lookup
  - list_annotations()           filtered by paper/page/type
  - export_annotations_json()    JSON serialization
  - export_annotations_markdown() Markdown serialization
- tests/unit/annotation/test_service.py  11 tests: create, patch, readonly
  enforcement, soft/hard delete, list filtering, JSON/MD export
2026-05-20 15:48:20 +08:00
..
adapters fix: skip backslash path test on non-Windows (\\ is valid filename char on Linux) 2026-05-09 18:33:42 +08:00
annotation feat: add annotation service 2026-05-20 15:48:20 +08:00
core feat: runtime contract hardening + skill/command truth alignment (Package A+B) 2026-05-16 22:38:43 +08:00
doctor v1.4.17rc4 2026-05-09 17:05:07 +08:00
memory Merge branch 'paperforge-stabilization' 2026-05-18 18:47:07 +08:00
schema feat(frontmatter): add citation_key field and alias from BBT citationKey 2026-05-12 18:28:53 +08:00
services feat(sync): auto-detect orphan papers after sync, show modal in Obsidian 2026-05-19 00:31:19 +08:00
worker fix(prune): protect dir iteration, add OSError handling, improve test coverage 2026-05-18 21:53:14 +08:00
__init__.py v1.4.17rc4 2026-05-09 17:05:07 +08:00
test_paper_resolver.py refactor(skills): modular literature-qa skill with router-first architecture 2026-05-10 20:56:28 +08:00