Round 2: fill remaining DetailedDescription gaps across all plugins
Details
Focused on AI-actionable gaps identified by cross-referencing PLUGIN_CONTEXT.md:
- Tasks: list 8 default statuses by name, add GTD contexts with autocomplete,
GitHub activity timeline, AI intent with slots
- Notes: wiki-link syntax for internal pages vs cross-plugin, automatic backlink
resolution, sticky note tags, AI intent with slots
- Calendar: AI intent with slots
- Contacts: favorites toggle, per-contact notes field, AI intent with slots
- Email: AI intent with slots
- Habits: export/share, 3 AI intents with slots
- Finance: category management flags (sort order, hidden)
- Journal: entry metadata (weather, location, word count, favorite), editable
transcription text, AI intent with slots
- Files: vault unlock requirement
- Snippets: AI intent with slots
- RSS: batch refresh, remove feeds, feed context menus, AI intent with slots
- WebClips: delete/archive CRUD, graph contribution with tag-based edges
- Data: search datasets by name
Update DetailedDescriptions across all plugins for RAG indexing completeness
Details
The AI assistant (Duncan) lacked knowledge of many user-facing features because
PluginMetadata.DetailedDescription — which gets RAG-indexed as plugin_context
chunks — was incomplete across most plugins.
Updated 13 plugin files to include all features documented in PLUGIN_CONTEXT.md:
HIGH priority (major feature gaps filled):
- Tasks: pairwise prioritization, task links/relationships, discrete notes,
projects, AI features, in-plugin keyboard shortcuts
- Notes: 23 block types (was "15+"), chart blocks, table variants, export/import
formats, page locking, cover images, inline properties, 18 templates
MEDIUM priority (moderate gaps filled):
- Calendar: agenda view, mini calendar, video conference detection, recurring
event exceptions, ICS subscriptions, drag-to-create snap grid, event popover
- Contacts: phonetic names, personal relationships, interaction detail fields,
org chart, company detail expansion, statistics detail
- Email: sender trust detail, search debounce, layout toggle, folder management
expansion, concurrent sync limits, intent signals
- Habits: frequency/value type detail, streak rules, dashboard metrics,
goal overdue detection, multi-period analytics detail
LOW priority (minor enrichments):
- Finance: 9 account types (added Equity), 10 AI intents enumerated
- Files: vault security boundary note
- Snippets: minor formatting improvements
- RSS: reader mode metadata extraction, semantic renderer detail
- WebClips: scroll position resume, domain filtering, AI suggestions
- Canvas: arrow styles, keyboard shortcuts, data migration note
- Data: CTE detection, import capability detail, AI insights
Journal was already comprehensive — no changes needed.
Add test solution and coverage script
Details
- PrivStack.Tests.sln: single solution referencing all 14 test projects +
TestUtilities, enabling `dotnet test` in one command
- tests/run-coverage.sh: runs all tests with coverlet, generates per-plugin
HTML + text summary via reportgenerator
- .gitignore: exclude coverage-results/ and coverage-report/ output dirs
Usage: ./tests/run-coverage.sh (runs tests + opens HTML report)
./tests/run-coverage.sh --no-open (CI-friendly, no browser)
Move page tree chevron to left-side fixed-width column
Details
Reorders tree item grid columns to Chevron | Icon | Title instead of
Icon | Title | Chevron. Hides the TreeViewItem's default expander container
(PART_ExpandCollapseChevronContainer) since we use a custom toggle. The
fixed 20px chevron column ensures consistent alignment across all tree
depth levels.
Add remaining test coverage: IngestionService, EntitySourceMaterializer, SmtpSendService
Details
- Finance/IngestionServiceTests: format routing, date filtering, dedup logic
- Data/EntitySourceMaterializerTests: RewriteSql, TempTableName, FormatSqlValue,
EscapeStringValue (extracted private → internal static for testability)
- Email/SmtpSendServiceTests: BuildMimeMessage with recipients, reply headers,
signatures, quoted text
- Journal: move SectionToolbar below section editors in new entry form
Get notified about new releases