LLLin000
85a7ae30a2
feat: add OCR rebuild UX and capability tracer
2026-07-15 20:36:15 +08:00
LLLin000
349d4f6dcb
feat: add streaming OCR rebuild progress
2026-07-14 18:05:49 +08:00
LLLin000
bf29966a86
feat: real-time metadata search via sql.js with 200ms debounce
...
Replace CLI spawn for metadata search with direct sql.js FTS5 queries.
Input debounced at 200ms. Falls back to CLI when sql.js unavailable.
@ Deep Search stays on CLI.
2026-07-10 02:49:31 +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
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
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
6dfa37ddb8
feat: style OCR maintenance summary layout
2026-06-19 18:16:34 +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
b0cee0f79b
feat: embed build background progress with pause/stop
2026-05-15 00:30:50 +08:00
Research Assistant
1e1acb2e82
spec: dashboard copy interaction + per-paper metadata enhancement
2026-05-14 01:21:52 +08:00
Research Assistant
f8c05959ed
style: align collection workflow overview with global library snapshot
...
- Match outer frame padding/background/shadow to library-snapshot
- Match inner stage card padding/background/layout to snapshot-pill
- Use align-items: stretch on funnel (pill parity), arrow stays centered
- Reduce collection-header bottom gap for tighter domain-to-card spacing
- Synchronize stage-label font-size (12px -> 11px)
2026-05-10 22:22:31 +08:00
Research Assistant
c6c5723296
style: tighten collection header spacing, fix u00B7 encoding, add stage max-width
...
- Fix CSS unicode escape: \\u00B7 -> literal middle dot character
- Remove 'papers' count line in collection header
- Tighten collection-header padding from 64px to 14px top only
- Reset collection-title margin to 0
- Add max-width: 160px + justify-self: center to workflow stages
- workflow-stage-label font-size: 11px -> 12px
2026-05-10 20:52:22 +08:00
Research Assistant
e662033fd9
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:52:21 +08:00
Research Assistant
09a520fb7a
style: strengthen collection and global dashboard hierarchy
2026-05-10 20:52:21 +08:00
Research Assistant
0f9aae4a88
style(dashboard): rewrite Sections 39-43 per Native Light Surface Design spec
...
- Remove all box-shadows and ::before elevation pseudo-elements
- Typography constrained to 4 sizes (16/14/13/12) and 3 weights (600/500/400)
- Cards only for primary content modules (overview, discussion, OCR pipe, issues)
- Status pills: 999px radius, text-only status colors (no colored backgrounds)
- Technical details: inline disclosure row, not a bordered box
- Workflow toggles: not a card (simple flex row)
- Contextual buttons: Obsidian interactive-normal variables
- Section labels: no accent border, simple uppercase 12px muted
- Dark theme: no shadows, only background tweaks
2026-05-10 16:05:45 +08:00
Research Assistant
f8fac94222
style(dashboard): establish CSS base --pf-* vars, typography tokens, utility classes
2026-05-10 15:59:20 +08:00
Research Assistant
806292febb
style(dashboard): luxury-minimal visual refinement
...
- Section labels: accent left-border matching metric card pattern
- Cards: ::before pseudo-element for smooth elevation on hover
- Per-paper header: larger title (16px), author (13px)/year (12px faint) hierarchy
- Body text: bumped from 11px to 13.5px for overview/discussion
- Status pills: rgba() translucent backgrounds with colored text
- Dark theme: deeper shadow on card hover (0 2px 12px rgba(0,0,0,0.3))
- Refined spacing, font weights, and transition timing for premium feel
2026-05-10 14:57:12 +08:00
Research Assistant
25b91b29ca
fix(dashboard): only show issue panel for serious blockers
...
- Collection view: remove issue summary entirely (health counts are workflow state, not errors)
- Global view: only show issues for runtime mismatch, index missing, export missing, token missing
- Remove pdfIssues aggregation (not critical)
- CSS: soften issue colors (orange left border instead of red, muted text)
2026-05-10 14:38:22 +08:00
Research Assistant
808cae61f6
feat(dashboard): add do_ocr/analyze workflow toggle checkboxes to per-paper view
...
- Replace OCR queue toggle button with checkbox pair (do_ocr + analyze)
- Mirrors Base view toggles: writes to formal note frontmatter via processFrontMatter
- Dashboard modify event handler picks up file change and auto-refreshes
- Workers (OCR, deep-reading) read frontmatter from note file on disk
2026-05-10 14:06:37 +08:00
Research Assistant
b9fb1c919c
style(dashboard): add refined CSS for redesigned per-paper, collection, and global views
...
- Status strip pills matching existing badge design (color-green/text-error)
- Paper overview card with card-style hover border + accent left border via ::before
- Discussion card with session-based Q&A styling + expand/truncate
- Workflow overview funnel with centered stage pills and arrows
- Issue summary with subtle error border + dot indicators
- Library snapshot pills and system status grid for global view
- Contextual button base style shared across all views
- All new components use Obsidian CSS variables for dark/light theme support
2026-05-10 14:04:14 +08:00
Research Assistant
c117e43a5e
chore: remove redundant Run All Pending OCR button
2026-05-08 19:16:43 +08:00
Research Assistant
79b540e490
feat(54-001/003): add OCR queue buttons, /pf-deep handoff, pending action, and privacy modal
...
- Add i18n keys for OCR queue, /pf-deep handoff, and privacy warning (en/zh)
- Add OCR toggle button to per-paper dashboard card (set do_ocr via processFrontMatter)
- Change /pf-deep copy button to copy full '/pf-deep <key>' command
- Add agent platform label below copy button
- Add Run All Pending OCR dynamic action card
- Add once-per-session OCR privacy warning modal (PaperForgeOcrPrivacyModal)
- Add CSS for queue hint, pending action card, platform label, and privacy modal
2026-05-08 17:47:39 +08:00
Research Assistant
70767c413a
feat(52-001): add Runtime Health UI, dashboard drift banner, extended error classification, Copy diagnostic
...
- Add Runtime Health section in settings showing Plugin vX vs Python vY
- Add match/mismatch badge (green/red) with version comparison
- Add 'Sync Runtime' button that runs pip install --upgrade
- Add Dashboard yellow drift warning banner on version mismatch
- Extend _formatSetupError to 10 categories (pip/network/SSL/disk/Python/etc)
- Add 'Copy diagnostic' button on setup failure with env info
- Add all i18n keys in both en and zh
- Add CSS for badge states, drift banner, and diagnostic button
2026-05-08 17:47:39 +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
b2e446eb21
fix: harden repair paths, slugify edge case, OCR meta resilience, venv python detection, and repair exit handling
2026-05-06 22:09:29 +08:00
Research Assistant
4fe55e11dc
feat: restore phases 31-34 from stash — dashboard multi-view, deep-reading mode, jump button, planning docs
...
- Phase 31: Bug fixes (version display, lifecycle alignment, AI Ready removal)
- Phase 32: Deep-reading mode detection (_resolveModeForFile, identity guard)
- Phase 33: Deep-reading dashboard (status card, Pass 1 extraction, AI Q&A)
- Phase 34: Jump to deep reading button (i18n, conditional visibility)
- Planning files for phases 31-36
- CSS: Section 33 deep-reading styles
- asset_index.py: paperforge_version in envelope
2026-05-06 15:14:36 +08:00
Research Assistant
6e1519f9db
style(30-01): add Section 17 CSS for collection view layout
...
- .paperforge-collection-view flex container
- .paperforge-collection-metrics grid for metric cards
- .paperforge-collection-health grid for health aggregation
- .paperforge-collection-health-cell/counts with ok/warn/fail coloring
2026-05-04 21:59:58 +08:00
Research Assistant
dbf76d1a0f
style(29-01): add per-paper view CSS and next-step card styles
...
- Section 15: Per-Paper View Layout (paper-view, header, title, meta, authors, year, actions, contextual-btn)
- Section 16: Next-Step Recommendation Card (next-step-card with ready state, label, text, trigger button)
2026-05-04 16:17:31 +08:00
Research Assistant
7bde882947
feat(28-01): add mode-aware CSS for content area and header context
...
- Section 13: .paperforge-content-area with switching opacity transition
- Section 13: .paperforge-content-placeholder with dashed border styling
- Section 14: .paperforge-mode-context with flex layout
- Section 14: .paperforge-mode-badge with 3 color states (global/paper/collection)
- Section 14: .paperforge-mode-name with text-overflow ellipsis truncation
- Section 14: .paperforge-mode-warning using var(--text-warning)
2026-05-04 14:58:19 +08:00
Research Assistant
312a4e359d
feat(27-01): add maturity gauge and bar chart CSS components
...
- Section 11: Maturity gauge with 6-segment horizontal bar
- Level-specific color classes level-1 through level-6
- Blocking checks listed as bullet points under gauge
- Section 12: Horizontal bar chart with lifecycle stage colors
- .bar-fill with transition: width 0.3s smooth animation
- Stage color variants: imported/cyan, indexed/blue, pdf-ready/purple
- fulltext-ready/green, deep-read/yellow, ai-ready/red
- All colors use var(--*) Obsidian CSS variables
2026-05-04 14:35:37 +08:00
Research Assistant
2c367b576e
feat(27-01): add lifecycle stepper and health matrix CSS components
...
- Section 9: Lifecycle stepper with 6 vertical steps, border-radius circles
- Connecting lines via ::before pseudo-element between steps
- States: .completed (green), .current (pulsing), .pending (dimmed)
- Section 10: Health matrix 2x2 CSS grid with color-coded cells
- Status classes: .ok (green), .warn (yellow), .fail (red)
- Hover tooltips via [title]:hover::after with attr(title)
- All colors use var(--*) Obsidian CSS variables
2026-05-04 14:34:56 +08:00
Research Assistant
927587230d
feat(27-01): add loading skeleton shimmer and enhanced metric card CSS
...
- Section 7: Loading skeleton with @keyframes paperforge-shimmer (1.5s)
- Section 7: Empty state with muted italic styling via .paperforge-empty-state
- Section 2 enhanced: opacity 0.3s transition on metric-card and metric-value
- Added .paperforge-metric-progress and .paperforge-metric-progress-fill for optional progress bar
- All colors use var(--*) Obsidian CSS variables
2026-05-04 14:34:11 +08:00
Research Assistant
1af4924c52
chore: bump version to v1.4.13
2026-05-01 11:14:59 +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
2820bc99e5
feat(21-01): add install status CSS styles (SECTION 5)
...
- .paperforge-install-status base style with margin/padding/border-radius
- .paperforge-install-success (green) with color-mix tinted background
- .paperforge-install-error (red) with color-mix tinted background
- .paperforge-install-progress (blue) with color-mix tinted background
- Uses Obsidian CSS variables for theme compatibility
2026-04-29 22:36:24 +08:00
Research Assistant
049f63ffec
feat: overhaul Obsidian plugin UI — dashboard layout, segmented OCR bar, action cards
2026-04-28 23:14:52 +08:00
Research Assistant
f617054d5a
feat: paperforge status --json, plugin panel with OCR progress bar
2026-04-28 19:21:52 +08:00
Research Assistant
11ebc85c4e
feat: Obsidian plugin status panel — metric cards, progress bars, quick actions
2026-04-28 19:11:58 +08:00