Skip to content

Latest commit

 

History

History
66 lines (60 loc) · 5.25 KB

File metadata and controls

66 lines (60 loc) · 5.25 KB

Project Activities & Todo

🔄 Recent Activities (Completed)

  • Annotation Engine (MVP)
    • Data Model: Registered kb_note CPT and implemented JSON-based target storage (Source UUID + Selector).
    • Frontend Selection: Implemented Text Selection API with popover controls.
    • Sidebar View: Created a slide-in sidebar to list all notes for the current article version.
    • Highlight Persistence: Implemented restoreHighlights to re-apply text highlights on page load using exact text matching.
    • Interaction: Linked highlights to sidebar notes (click to focus).
    • Bug Fix: Resolved issue where Note Popover disappeared on click (event conflict).
    • Note Modes: Replaced "Add Selection" button with persistent dropdown (Just Highlight, Excerpt, Copy).
    • UX Persistence: Implemented local storage for user's preferred Note Mode.
    • Visuals: Added blockquote styling for quoted text in Sidebar.
    • Refinement: Modified Note Mode to apply excerpt/copy actions only on submission (keeping textarea clean).
    • Navigation: Implemented bidirectional navigation (Article Highlight ↔ Sidebar Note).
    • Management: Added Edit and Delete capabilities for notes.
    • Tagging:
      • Implemented live hashtag extraction from note content.
      • Added responsive "search-as-you-type" for tag input.
      • Implemented source-aware tag removal (handling manual vs. text-embedded tags).
    • Indicators:
      • Implemented Note Count Indicator (badge) on Article Cards in Archive/Search views.
      • Optimized performance with cached metadata (_kb_note_count) to avoid N+1 queries.
      • Elementor Controls: Added full styling controls for Note Count Indicators (Typography, Color, Background, Border, Padding, Margin) to both Archive and Search widgets.
      • Search Widget Fix: Resolved issue where Search Widget ignored Note Count position settings by passing options correctly to AJAX handler.
    • Formatting: Improved excerpt rendering with contiguous blue line and robust whitespace handling.
    • Metadata: Added Author Name, Avatar, and Time to Note display.
    • Security: Restricted Note creation/viewing and Article Re-check features to logged-in users.
  • Data Integrity & Deduplication (Phase 7.5)
    • Concurrency Locking: Implemented transient-based atomic locking (60s) to prevent race conditions during parallel ingestion of the same URL.
    • Global Hash Check: Implemented global content hash verification (Layer 2) to detect and link "Near Duplicates" (same content, different URL) to existing articles.
    • Canonical Resolution: Implemented HTTP HEAD/GET based canonical URL resolution (Layer 1) to normalize redirects (e.g., flip.it) before ingestion.
    • Data Cleanup: Created and ran merge_duplicates.php to consolidate 7 sets of duplicate articles/versions caused by race conditions.
    • Documentation: Updated deduplication strategy docs and plan.
  • Documentation & Release Prep
    • Installation Guide: Finalized comprehensive guide including prerequisites, manual/dev installation, first-run initialization, and troubleshooting.
    • Mobile/Touch Design: Updated documentation to reflect "Touch-First" philosophy, interaction delays, and specific mobile behaviors (tap-to-reveal).
  • Performance Optimization
    • Search Index: Optimized for >10k items by increasing search limit to 1000 and verifying database index usage.
  • Re-check Capability
    • Added "Re-check" button to Knowledge Search Widget (hover state) with full styling controls.
    • Added "Re-check" button to Knowledge Archive Widget (hover state) with full styling controls.
    • Implemented priority queue handling in backend (re-checks move to top of queue).
    • Ensured Re-check button persists across AJAX pagination (Load More / Infinite Scroll).
  • Search Widget UX Enhancements
    • Enabled Archive-style display controls (grid, image, summary, etc.) for Standard Search mode.
    • Implemented "Results Divider" with customizable style, color, and spacing.
    • Positioned Results Divider below the search results area.
    • Added "Show Other Content" toggle to automatically hide/show page content (e.g., existing archives) when searching.
    • Added AJAX support for Standard Search to render results dynamically without page reload.

📝 Todo List

🚀 Performance & Scaling

  • Transient Caching: Implement caching for external API calls (AI providers, extraction services).

📚 Documentation

  • Elementor Widgets: Documented all settings for Archive and Search widgets (including new Search modes, Re-check button, and Results Divider).

📦 Release Preparation

  • Version Bump: Update plugin version in main file and package.json.
  • Release Package: Create a build script or manual process for generating the distribution zip.

🧪 Testing & QA

  • Regression Testing: Verify Standard Search and AI Chat modes on mobile devices.
  • Cross-Browser Testing: Check "Show Other Content" toggle behavior on Safari/Firefox.