Research Assistant
5c6ccaad34
feat: dashboard ui refine — arrow icons, maillard colors, responsive grid, setup bugfix
...
Dashboard UI:
- Replace text expand/collapse with SVG arrow + clickable gradient container
- Map agent_platform key to display name (OpenCode, not opencode)
- Maillard/Morandi palette for OCR progress bars (pending brown, done deep green)
- Shorten 'Needs Attention' to 'Attention' to prevent label wrap
- Responsive workflow overview: CSS Grid + container queries (narrow: 2x2, wide: 4x1 with max-width 160px stop)
Setup Wizard:
- Fix Phase 7 verification crash (undefined agents_src/agents_dst variables)
Skill restructure:
- Move chart-reading references under references/ directory
- Remove old pf-*.md script files (deployed via skill_deploy service)
- Add new reference files (deep-reading, paper-qa, paper-resolution, save-session)
2026-05-10 20:56:27 +08:00
Research Assistant
f885adae48
feat: skill auto-deploy in update + Copy Context as pure JS + shared skill_deploy service
...
- New services/skill_deploy.py: single source of truth for agent skill deployment
- AGENT_CONFIGS with 9 platforms, all vault-local
- deploy_skills() with install/update mode (overwrite flag)
- Used by both setup wizard and update worker
- update.py: _deploy_all_skills() after pip/git/zip update
- setup_wizard.py: delegates skill deploy to shared service
- config.py: add agent_platform default
- main.js: Copy Context + Copy Collection Context now pure JS
- Uses in-memory _cachedItems / _currentPaperEntry
- No subprocess spawn, no timeout, no JSON parse errors
- testable.js: remove needsKey/needsFilter from context actions
- commands.test.mjs: update assertions for removed flags
2026-05-10 12:33:23 +08:00
Research Assistant
50857796db
fix(setup): stop copying docs/ to user vaults — developer docs are repo-only
2026-05-10 02:01:53 +08:00
Research Assistant
15d849f7e6
fix: remove deprecated control_dir from doctor/setup/repair; enable repair button; fix UTF-8 encoding in doctor output
2026-05-10 01:50:24 +08:00
Research Assistant
64e73067fb
style: ruff format pass across paperforge/
2026-05-09 22:31:08 +08:00
Research Assistant
71e2fa695f
fix: CI failures — stub params, ld_deep syntax, PFResult tests, setup_wizard plugin copy
...
Fixes 4 CI issues:
- test_cli_worker_dispatch: add json_output param to stubs
- ld_deep.py: replace Python 3.12+ generic syntax with TypeVar
- test_e2e_cli, test_status: update assertions for PFResult envelope
- setup_wizard: skip node_modules/src dirs in plugin copy
- ci.yml: shell=bash for Windows, pin alls-green@v1.2.2
2026-05-09 17:22:11 +08:00
Research Assistant
bbd39a90d3
v1.4.17rc4
...
Milestone v2.1: Contract-Driven Architecture & Engineering Hardening
- Stop the Bleeding: version sync checker, PyYAML hardening, install docs unification
- Contract Layer: PFResult/PFError dataclasses, ErrorCode enum, --json wrapping
- Service Extraction: sync.py decomposed into 3 adapters + SyncService
- State Machine: PdfStatus/OcrStatus/Lifecycle enums, transitions, field registry
- Setup Modularization: setup_wizard.py decomposed into 6 classes
173 tests passing, 0 regressions.
2026-05-09 17:05:07 +08:00
Research Assistant
5b30c02392
fix: auto-discover all pf-* skills for Codex/Claude skill directories
2026-05-08 22:29:23 +08:00
Research Assistant
e99987793a
fix: install from tagged release URL, version consistency check on startup
2026-05-08 01:41:54 +08:00
Research Assistant
dd71bb0f79
fix: v1.4.17rc2 — OCR quote fix, 4-stage lifecycle, .env fallback, Codex support, deep-reading anchors, auto-update pip
2026-05-08 01:26:04 +08:00
Research Assistant
53e76b871d
Revert "fix: move Zotero data auto-detection before junction creation"
...
This reverts commit c601cdc250 .
2026-05-07 22:26:24 +08:00
Research Assistant
c601cdc250
fix: move Zotero data auto-detection before junction creation
...
Auto-detection was running in Phase 3, after the junction
creation block in Phase 2 had already been skipped.
2026-05-07 22:25:04 +08:00
Research Assistant
e742df7888
fix(merge-gate): upgrade migration safeguards, index path integrity, and Python version alignment
...
- migrate_to_workspace: preserve legacy flat notes even without canonical index
- migrate_to_workspace: reconcile legacy library-record do_ocr/analyze flags including false overrides
- migrate_to_workspace: handle non-canonical legacy filenames via frontmatter title
- asset_index: only advertise fulltext_path/deep_reading_path when files exist
- asset_index: prefer note frontmatter over legacy library-records, fall back to legacy
- setup_wizard: require Python >=3.10 instead of >=3.8
- plugin main.js: align Python version messaging to 3.10+
- ocr.py: auto_analyze_after_ocr reads from formal note paths, not library-records
2026-05-07 21:51:58 +08:00
Research Assistant
37b527586c
feat(48-textual-tui-removal): remove Textual TUI code from setup_wizard.py
...
- Remove all 'from textual' imports (BLOCK A)
- Remove all TUI step classes, custom messages, and SetupWizardApp (BLOCK B)
- Replace main() with help-message redirecting to --headless (BLOCK C)
- Preserve: headless_setup(), EnvChecker, AGENT_CONFIGS, _find_vault, _copy_file_incremental, _merge_env_incremental
- All preserved items verified importable and functional
2026-05-07 19:41:10 +08:00
Research Assistant
5ff4f19f3f
docs(47-library-records): update setup_wizard.py post-install to single-command workflow
...
- Removed two-phase --selection/--index code block
- Describes single paperforge sync workflow
- No library-records references in post-install text
2026-05-07 19:18:31 +08:00
Research Assistant
29edb2d811
fix: overhaul install flow clarity and non-destructive incremental setup
...
- Move Better BibTeX auto-export to post-install step (exports dir created by setup)
- Clarify wizard overview: show resources_dir/literature_dir/control_dir hierarchy
- Fix post-install flow order: BBT export → enable plugin → dashboard → sync
- Split do_ocr and analyze marks into separate steps (OCR before deep-reading)
- Mark all literature flags via Base views, not manual file editing
- Make installer incremental: preserve existing files, only create missing ones
- Remove destructive junction/link deletion in TUI wizard
- Merge .env instead of overwriting; skip overwrite for AGENTS.md, docs, plugin
- Update TUI, headless, and plugin completion output to match corrected flow
- Add regression test for non-destructive setup behavior
2026-05-06 22:47:07 +08:00
Research Assistant
1d52d94445
fix: plugin pip bootstrap install and setup_cli non-fatal; add regression tests
2026-05-06 22:46:56 +08:00
Research Assistant
f8fccf70de
fix: support pip-installed setup asset deployment and optional AGENTS guide
2026-05-06 22:46:06 +08:00
Research Assistant
d1e8090c21
fix: honor user-provided zotero path in setup informational checks
2026-05-06 22:45:23 +08:00
Research Assistant
c926b734c0
fix: unify setup wizard version output with package __version__
2026-05-06 22:44:53 +08:00
Research Assistant
b8f2076e4d
fix: maturity gauge string-blocker iteration, paper header sync, setup control_dir removal
2026-05-06 12:41:43 +08:00
Research Assistant
e02c0b1b3d
feat(22-03): setup wizard writes clean vault_config-only paperforge.json with schema_version
2026-05-03 23:07:38 +08:00
Research Assistant
2d5f604ae8
feat: v1.4.11 — Obsidian plugin UX overhaul + headless_setup parity
...
- Plugin: multi-step install wizard modal (5 steps) with editable directory/key inputs
- Plugin: settings tab becomes operation guide; all config moved to wizard
- Plugin: Python/Zotero/BBT pre-check before wizard opens
- Plugin: agent platform selector (OpenCode/Claude/Cursor/Copilot etc.)
- Plugin: responsive dashboard (auto-fit grids, clamp typography)
- Plugin: command output styled in-panel (running/ok/error)
- Plugin: BBT export guidance in settings tab
- Plugin: rename defaults (Resources, Notes, Index_Cards, System, Base)
- Plugin: vault_path auto-detect from Obsidian
- Plugin: auto-update paperforge on plugin load
- CLI: headless_setup now creates Zotero junction (mklink /J)
- CLI: headless_setup deploys skill directory for flat_command agents
- sync: wikilink through junction (no .resolve() — keeps vault-relative paths)
- sync: route absolute paths through Zotero junction for vault-relative wikilinks
- config: remove library-records subdirectory (records now directly under control_dir)
- base_views: fix duplicate views on merge (skip legacy unmarked views)
- base_views: auto-update folder filter when path config changes
- Phases 20-22 planned and documented
- Bump to v1.4.11
2026-04-30 11:14:07 +08:00
Research Assistant
40ee97c0f8
chore: bump to v1.4.3, update READMEs with multi-agent and plugin info
2026-04-28 19:43:58 +08:00
Research Assistant
248a0b6446
fix: restructure skills — separate pf-deep/pf-paper, add prefix substitution, create config_file on deploy
2026-04-28 18:33:11 +08:00
Research Assistant
94ddf1f6a0
fix: apply missing deploy helper functions, SKILL.md source files, and format dispatch
2026-04-28 17:15:37 +08:00
Research Assistant
22e2fc547f
fix: ensure parent dirs exist before copying skill files
2026-04-28 16:27:45 +08:00
Research Assistant
aac31c4a76
test: add AGENT_CONFIGS format/prefix field tests, update expected agents
2026-04-28 16:13:58 +08:00
Research Assistant
22c82dae24
fix: remove hardcoded literature-qa subdirs from Phase 2 directory creation
2026-04-28 16:11:59 +08:00
Research Assistant
c43c0c76a2
refactor: extend AGENT_CONFIGS with format and prefix fields, add codex
2026-04-28 16:03:11 +08:00
Research Assistant
859fa5ff97
feat: headless setup mode, Obsidian plugin, AI agent install guide (v1.4.2)
2026-04-28 14:33:35 +08:00
Research Assistant
ebc4fdeb00
chore: rename PaperForge Lite -> PaperForge across 27 files
2026-04-28 01:25:51 +08:00
Research Assistant
ec1587febc
fix: add exit button to setup wizard, fix Python version (3.8->3.10), remove outdated migration text
2026-04-28 01:24:28 +08:00
Research Assistant
d82fc52521
feat: persistent OCR poll until completion; fix OpenCode commands for pip install; fix test hangs; add command_files to package
2026-04-27 22:52:03 +08:00
Research Assistant
0505fd2fda
feat: add paperforge setup CLI command, one-click install script, sync __version__ to 1.4.0, detect local version from pip metadata
2026-04-27 21:34:03 +08:00