docs(03-01): complete link record extraction and wiki-link resolution plan
- 03-01-SUMMARY.md: documents LinkRecord struct, render_markdown signature change, resolve_wiki_link algorithm, is_within_vault guard, and all decisions - STATE.md: advance to Phase 3 Plan 2, update progress to 75%, add 3 decisions, mark NAV path traversal blocker resolved - ROADMAP.md: update phase 3 plan progress (1 of 2 summaries) - REQUIREMENTS.md: mark NAV-01, NAV-02, NAV-10 complete
This commit is contained in:
+13
-9
@@ -5,16 +5,16 @@
|
||||
See: .planning/PROJECT.md (updated 2026-02-28)
|
||||
|
||||
**Core value:** Users can connect via SSH and seamlessly browse a vault of linked markdown documents with retro BBS aesthetics
|
||||
**Current focus:** Phase 2 COMPLETE — all 3 plans done (vault + highlighter + renderer + app integration)
|
||||
**Current focus:** Phase 3 IN PROGRESS — Plan 01 done (LinkRecord, wiki-link resolver, path traversal guard)
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: 2 of 4 (Vault Core and Rendering) — COMPLETE
|
||||
Plan: 3 of 3 in current phase (all plans done)
|
||||
Status: Phase 2 complete — Phase 3 (Navigation) next
|
||||
Last activity: 2026-02-28 — Plan 03 complete (app.rs wired with document display, scrolling, status bar)
|
||||
Phase: 3 of 4 (Navigation and Links) — IN PROGRESS
|
||||
Plan: 1 of 2 in current phase (03-01 done, 03-02 next)
|
||||
Status: 03-01 complete — link metadata extraction and wiki-link resolution implemented
|
||||
Last activity: 2026-02-28 — Plan 01 complete (LinkRecord, ENABLE_WIKILINKS, resolve_wiki_link, path traversal guard)
|
||||
|
||||
Progress: [███████░░░] 63%
|
||||
Progress: [████████░░] 75%
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
@@ -29,6 +29,7 @@ Progress: [███████░░░] 63%
|
||||
|-------|-------|-------|----------|
|
||||
| 01-safety-foundation | 3 | 7 min | 2.3 min |
|
||||
| 02-vault-core-and-rendering | 3 | 9 min | 3.0 min |
|
||||
| 03-navigation-and-links | 1 so far | 3.5 min | 3.5 min |
|
||||
|
||||
**Recent Trend:**
|
||||
- Last 5 plans: 3 min, 2 min, 2 min, 4 min, 3 min
|
||||
@@ -64,6 +65,9 @@ Recent decisions affecting current work:
|
||||
- [Phase 02-03]: raw_content stored in App for resize re-render — avoids disk re-read on window resize
|
||||
- [Phase 02-03]: draw_error_screen() unified for Missing and Error via Option<&str> reason parameter
|
||||
- [Phase 02-03]: Scroll keys placed before _ catch-all — j/k during quit prompt does not dismiss it
|
||||
- [Phase 03-navigation-and-links]: vault_path added to render_markdown for render-time broken wiki-link detection
|
||||
- [Phase 03-navigation-and-links]: Broken wiki-links checked at render time; standard links deferred to navigation time
|
||||
- [Phase 03-navigation-and-links]: link_span_start_count field tracks span array position at Tag::Link Start for span_len computation
|
||||
|
||||
### Pending Todos
|
||||
|
||||
@@ -72,11 +76,11 @@ None.
|
||||
### Blockers/Concerns
|
||||
|
||||
- **REND blocker resolved**: renderer.rs uses no Widget trait at all — `render_markdown()` returns `Vec<Line<'static>>` which Plan 03 passes to `Paragraph::new()`. No custom Widget needed.
|
||||
- **NAV**: Path traversal via wiki-links must be addressed in Phase 3 link resolver — canonicalize and prefix-check every resolved path
|
||||
- **NAV path traversal resolved**: is_within_vault() with canonicalize + starts_with guards all link resolution in vault.rs
|
||||
- **LIVE**: notify 8.x API must be verified at integration time; watch only current file (not full vault) to avoid inotify exhaustion
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-02-28
|
||||
Stopped at: Phase 3 context gathered
|
||||
Resume file: .planning/phases/03-navigation-and-links/03-CONTEXT.md
|
||||
Stopped at: Completed 03-01-PLAN.md
|
||||
Resume file: .planning/phases/03-navigation-and-links/03-02-PLAN.md
|
||||
|
||||
Reference in New Issue
Block a user