LLLin000
b41b4c88b7
fix: complete managed runtime cutover
2026-07-20 02:20:25 +08:00
LLLin000
c883d5fcc9
fix: share managed runtime and preserve credential state
2026-07-20 01:47:17 +08:00
LLLin000
d2334d4446
feat( #82 ): remove old Python resolvers — resolvePythonExecutable, getCachedPython, checkRuntimeVersion, buildRuntimeInstallCommand, _syncRuntime
...
- settings.ts: replaced all getCachedPython/resolvePythonExecutable calls with _resolveRuntimeCommand (ManagedRuntime)
- settings.ts: deleted _syncRuntime (superseded by ManagedRuntime.ensure)
- settings.ts: cleaned dead imports (getMemoryRuntime, isMemoryReady, isVectorReady, getCachedPython)
- main.ts: added _getPythonCommand helper using ManagedRuntime, replaced all resolvePythonExecutable calls
- dashboard.ts: added _resolvePython helper, replaced all 7 resolvePythonExecutable + 1 checkRuntimeVersion calls
- modals.ts: added _resolvePython helper to PaperForgeSetupModal, replaced getCachedPython + 3 resolvePythonExecutable calls
Build: 258.0KB | Tests: 384/384 passed | Typecheck: clean
2026-07-19 15:06:04 +08:00
LLLin000
508ef78d51
feat( #81 , #82 ): Release N+1/2 cutover — remove setup_complete, auto_update, legacy migration, deprecated build-state JSON writer
...
#81 (N+1) remaining:
- settings.ts: _resolveRuntimeCommand fail-closed (no getCachedPython fallback)
- managed-runtime.ts: PYTHON_310_DEPRECATED warning removed, single 3.11+ gate
- Python backend: checker/setup_wizard/status → 3.11 minimum
- i18n: 3.10 → 3.11 user-facing strings
#82 (N+2) deletions:
- constants.ts: removed setup_complete, auto_update, auto_update_on_startup, selected_skill_platform
- main.ts: removed _autoUpdate, _firstLaunchSnapshotMigration, credential migration
- modals.ts: removed setup_complete write
- settings.ts: removed categorizeMaintenanceRow dead import
- build_state.py: removed deprecated get_vector_build_state_path
Build: 261.4KB | Tests: 384/384 passed | Typecheck: clean
2026-07-19 14:54:19 +08:00
LLLin000
b4c0404542
feat: deliver actionable Maintenance inbox and privacy-safe issue drafts ( #80 )
...
Maintenance derives worst-constituent severity from Installation/
Library/OCR/Memory/Help with no independent probe/action. Items
route to constituent module actions; re-probe removes resolved
items. Accessible destructive confirmation (Tab trap, Escape,
inert bg, focus restore) plus editable locally redacted OCR
issue drafts with explicit GitHub open and no token storage.
Backend: probe_maintenance aggregation, quality_unacceptable
detection with scope_count, 78/78 gate.
Frontend: Maintenance tab, inbox rendering, PaperForgeConfirmModal,
PaperForgeIssueDraftModal with double-redaction, excluded-category
preview, _REAL_PROBE + strict envelope validation, container-query
responsive at 730/768px.
Verified: 78/78 backend, 384/385 plugin (1 known baseline),
typecheck clean, 264.9KB build, Obsidian 1.12.7 smoke.
2026-07-19 14:09:54 +08:00
LLLin000
c23d6b9a7f
Merge branch 'feat/issue-78-capability-tracers' into feat/issue-80-maintenance
...
# Conflicts:
# PROJECT-MANAGEMENT.md
# paperforge/plugin/main.js
# project/current/ocr-v2-active-queue.md
2026-07-19 10:26:47 +08:00
LLLin000
f9c65020ca
fix: use text-only migration warning
2026-07-19 01:11:37 +08:00
LLLin000
6bed0d7151
feat: migrate plugin credentials to SecretStorage ( #79 )
2026-07-19 01:00:41 +08:00
LLLin000
69a6223910
feat: expose library OCR and memory capability tracers ( #78 )
2026-07-18 18:13:08 +08:00
LLLin000
4ef9e9834a
chore: update plugin bundle and vitest config
2026-07-16 02:55:43 +08:00
LLLin000
85a7ae30a2
feat: add OCR rebuild UX and capability tracer
2026-07-15 20:36:15 +08:00
LLLin000
d7b0a52780
closeout: record #69/#70 resolution, capability model, runtime architecture, maintenance regression fixes
...
- Update PROJECT-MANAGEMENT.md for #69/#70 resolved, #71/#72 as live frontier
- Add orthogonal capability/activity/attention model and managed-runtime immutable-slot
architecture decisions to decision log and timeline
- Record OCR maintenance regression: canonical per-row action routing (display_action->verb),
redo confirmation gate, cache manifest preservation (19/19 tests pass)
- Add research reports: docs/research/2026-07-14-capability-state-action-contract.md,
docs/research/2026-07-14-managed-runtime-architecture.md
- Update project/current/ocr-v2-active-queue.md with resolved items and new frontier
2026-07-15 00:03:16 +08:00
LLLin000
3a516add86
fix: align OCR maintenance selection semantics
2026-07-14 18:27:53 +08:00
LLLin000
349d4f6dcb
feat: add streaming OCR rebuild progress
2026-07-14 18:05:49 +08:00
LLLin000
b4ac277438
Merge branch 'feat/retrieval-recovery'
...
# Conflicts:
# paperforge/commands/embed.py
2026-07-11 01:26:37 +08:00
LLLin000
460412d423
fix: isVectorReady checks total_chunks instead of fulltext-only chunk_count
2026-07-11 00:39:25 +08:00
LLLin000
0fd5227355
chore: fix ruff violations — unused imports, Path, dead code, formatting
2026-07-11 00:10:32 +08:00
LLLin000
32e69a6c7b
Delete sql.js: remove db.ts, wasm, dependency, and all sql.js code paths
...
- Remove paperforge/plugin/src/services/db.ts (sql.js wrapper, initDatabase/searchMetadata/SearchResultItem)
- Remove paperforge/plugin/sql-wasm.wasm (644KB binary)
- Remove sql.js and @types/sql.js from package.json; npm install to update lockfile
- dashboard.ts: remove import of db.ts, remove _sqlJsInitialized/_sqlJsFailed state,
remove the sql.js search path block entirely — all searches go straight to CLI spawn.
Clean up stale comments.
- Bundle drops from 346KB to 167KB; 6 test files / 58 tests still pass
2026-07-10 23:07:26 +08:00
LLLin000
d6c1d1539b
chore: rebuild plugin main.js with sql.js dependency
...
Bundles sql.js for direct FTS5 access to paperforge.db.
2026-07-10 02:49:06 +08:00
LLLin000
4ff165ae49
feat( #38 , #40 ): version history panel + @ Deep Search
...
#38 : File Recovery-style version history panel with i18n (en/zh).
- _renderVersionMode() with paper list + timeline + restore/compare
- version-history.ts service for scan/restore/compare
- Paper mode [版本历史] button
- i18n strings for all panel text
#40 : @ Deep Search with query rewrite + hybrid retrieval.
- query_rewrite.py: abbreviation expansion (28 terms) + synonyms (12)
- hybrid_search(): BM25 FTS5 + vec0 k-NN + score fusion (0.3/0.7)
- retrieve --deep flag routes to hybrid_search
- Graceful vec0 fallback (FTS5-only)
- 17 new tests
Co-authored-by: VersionPanel <agent>
Co-authored-by: DeepSearch <agent>
2026-07-10 01:01:48 +08:00
LLLin000
06fec04651
feat: Phase 0, 1, 3a — legacy OCR fix, ChromaDB migration, search bar UI
...
Phase 0 (#35 ): _needs_derived_rebuild returns (False, 'legacy_ocr') for
papers without structured blocks and derived_version. _can_rebuild adds
has_structured check. No misleading rebuild suggestions for legacy users.
Phase 1 (#36 ): migrate_chroma_to_vec0() copies existing ChromaDB vectors
to vec0 tables with zero API calls. Idempotent (skips by paper_id).
delete_paper_vectors() cleans both ChromaDB and vec0. CLI: embed migrate.
5 new tests.
Phase 3a (#39 ): Search bar in collection panel — two-mode input
(M metadata / @ deep) with card results display. JSON output parsed
from search/retrieve CLI. 289 lines TypeScript, 175 lines CSS.
Build passes clean.
Co-authored-by: Phase0LegacyOcr <agent>
Co-authored-by: ChromaMigration <agent>
Co-authored-by: SearchBarUI <agent>
2026-07-10 00:02:02 +08:00
LLLin000
45022c3e16
docs: archive superpowers specs/plans, commit PR9A-C plan files
...
- Archive 173 design/plan/analysis docs from docs/superpowers/ →
docs/archive/superpowers/ (all features shipped)
- Commit 5 PR9A-C plan files to docs/plans/ (historical record)
- Rebuild plugin bundle (main.js: 2172→49 lines, minified)
- Fix settings.ts type assertion
2026-07-09 00:39:39 +08:00
Research Assistant
48f486a434
Merge branch 'ocr-v2'
2026-06-29 02:03:23 +08:00
Research Assistant
38c463a814
feat: dashboard Start Working cleanup, pf-copy click indicator, collection header revert, time sorting
2026-06-26 20:35:13 +08:00
Research Assistant
0649f11679
feat: dashboard CSS polish + click-to-copy on title/paths
2026-06-26 00:46:37 +08:00
Research Assistant
5b830d3bfd
fix: sort maintenance table by time descending
2026-06-24 01:19:45 +08:00
Research Assistant
9a19dc5850
fix: maintenance tab timezone, rebuild timestamp, title tooltip; UI: Vercel-inspired polish across all tabs
2026-06-24 01:08:20 +08:00
Research Assistant
404b1f35d1
fix: wire card action buttons in OCR maintenance Needs Attention section
2026-06-19 18:26:47 +08:00
Research Assistant
6dfa37ddb8
feat: style OCR maintenance summary layout
2026-06-19 18:16:34 +08:00
Research Assistant
ccafb8bae7
feat: add OCR maintenance tab with rebuild and redo controls
...
- Add OCRMaintenanceRow model (ocr_maintenance.py) for clean table data
- Add paperforge ocr list --json for plugin consumption
- Add paperforge ocr rebuild command (rebuild-derived from raw OCR)
- Add maintenance tab in plugin settings with paper table
- Table: select, key, title, status, health, version, time, redo, rebuild
- Mutual exclusion: redo/rebuild per paper, filter by status
- Global rebuild-index and rebuild-memory buttons
2026-06-19 16:22:08 +08:00
Research Assistant
b9885f369d
feat: add Gemini CLI agent platform support (.gemini/skills)
2026-06-01 19:46:17 +08:00
Research Assistant
944afed029
fix: correct user-manual link from main to master branch
2026-06-01 18:17:17 +08:00
Research Assistant
08309ce869
refine: simplify release notes language, highlight recommended actions with orange background
2026-06-01 18:15:22 +08:00
Research Assistant
2ab524aecf
feat: ocr reading-order fixes, single-source fulltext, redo closed-loop, release notes & manual
2026-06-01 18:12:31 +08:00
Research Assistant
82fffc6ffe
fix: address code review issues — fulltext_md_path clear, key validation, redo no auto-run, ribbon button
2026-06-01 11:36:29 +08:00
Research Assistant
26f1b64639
feat: add 重做OCR ribbon button to plugin
2026-06-01 11:30:31 +08:00
Research Assistant
12da738083
fix: run Zotero filesystem checks for all non-OCR step-3 paths
2026-05-31 20:21:36 +08:00
Research Assistant
2a319ab9b6
fix: wire shouldBlockStep3 into _validateStep3
2026-05-31 20:18:32 +08:00
Research Assistant
18e90a4f6f
feat: allow skipping OCR key during setup
2026-05-31 20:15:22 +08:00
Research Assistant
03ad9ce64f
feat: stabilize paperforge query planning
2026-05-27 21:20:15 +08:00
Research Assistant
51e78676e9
chore(plugin): finalize TS migration -- delete legacy testable.js
2026-05-24 17:33:22 +08:00
Research Assistant
2134c3ea86
fix(plugin): finish orphan modal i18n for all remaining strings
2026-05-19 01:33:23 +08:00
Research Assistant
263dbaae46
feat(plugin): i18n for orphan modal, label tweaks
2026-05-19 01:28:14 +08:00
Research Assistant
02ef2d9b52
feat(sync): auto-detect orphan papers after sync, show modal in Obsidian
...
- prune.py: _enrich_orphan_preview() reads note frontmatter for metadata
- sync_service.py: always run dry-run prune, include in result
- sync.py: write sync-orphan-state.json for plugin consumption
- main.js: add checkOrphanState() + PaperForgeOrphanModal with select/toggle
- styles.css: orphan modal styles (list, tags, dimmed rows)
- cli.py: add --keys to prune command for targeted deletion
2026-05-19 00:31:19 +08:00
Research Assistant
19c28a8b91
chore: commit session work before hotfix switch
2026-05-18 22:47:30 +08:00
Research Assistant
8233cb7aff
feat(plugin): render discussion card from .md with MarkdownRenderer
2026-05-18 21:12:06 +08:00
Research Assistant
add220d93c
feat(discussion): remove JSON output and markdown escaping
2026-05-18 21:09:54 +08:00
Research Assistant
8dc58ce1f5
fix: close review findings for auto-sync, sync PFResult, and global actions
...
Remove invalid sync --key path from OCR auto-refresh, surface memory rebuild
failures in sync PFResult instead of swallowing them, and complete the
persistent Global action group with Status + Repair.
2026-05-16 23:48:34 +08:00
Research Assistant
a404ebd43b
feat: progressive disclosure UX (Package D)
...
Staged setup wizard gating: OCR key and Zotero data no longer block first sync.
Persistent core action visibility: Sync, OCR, Doctor always on Global/Home.
Collapsed Advanced section in Settings for Memory Layer + Vector DB.
OCR/Zotero keys downgraded from blocking validation to optional warnings.
2026-05-16 22:54:05 +08:00
Research Assistant
2b552be9e6
feat: runtime contract hardening + skill/command truth alignment (Package A+B)
...
Atomic snapshots, canonical index mutation serialization, sync post-clean truth,
plugin path config-awareness, embed stop signal honesty, full snapshot bootstrap,
pf_ prefix unification, workflow command/lifecycle/path corrections,
mechanical/cognitive route separation with unknown-command guard.
2026-05-16 22:38:43 +08:00