vicky469_aside/docs/feature-map.canvas
2026-05-13 14:44:11 -04:00

89 lines
14 KiB
Text

{
"nodes":[
{"id":"group-derived","type":"group","x":0,"y":1830,"width":2240,"height":340,"color":"2","label":"9. Derived metadata + mention parsing"},
{"id":"group-diagnostics","type":"group","x":0,"y":2210,"width":2240,"height":360,"color":"4","label":"10. Local diagnostics + log inspector"},
{"id":"group-backbone","type":"group","x":0,"y":70,"width":2240,"height":210,"color":"2","label":"Backbone"},
{"id":"group-guide","type":"group","x":0,"y":-170,"width":2240,"height":210,"color":"6","label":"How to use this"},
{"id":"group-settings","type":"group","x":1260,"y":1470,"width":980,"height":350,"color":"3","label":"8. Settings + index customization"},
{"id":"group-mutation","type":"group","x":0,"y":720,"width":980,"height":370,"color":"3","label":"3. Save + edit + resolve + delete"},
{"id":"group-index","type":"group","x":1260,"y":1100,"width":980,"height":330,"color":"2","label":"6. Index note + index sidebar"},
{"id":"group-capture","type":"group","x":0,"y":350,"width":980,"height":320,"color":"5","label":"1. Capture comment + start draft"},
{"id":"group-draft-tools","type":"group","x":1260,"y":350,"width":980,"height":320,"color":"5","label":"2. Draft editing + formatting + suggestions"},
{"id":"group-navigation","type":"group","x":1260,"y":720,"width":980,"height":330,"color":"4","label":"4. Reveal + open + navigate"},
{"id":"group-highlights","type":"group","x":0,"y":1100,"width":980,"height":330,"color":"4","label":"5. Highlights + anchors"},
{"id":"group-workspace","type":"group","x":0,"y":1470,"width":980,"height":340,"color":"3","label":"7. Sidebar targeting + workspace behavior"},
{"id":"mutation-summary","type":"text","text":"Edit here:\nLifecycle mutations, dedupe,\npersistence timing, canonical storage planning,\nsidecar cache writes, synced plugin-data events,\nand legacy managed-block migration.\n\nSee: `canonicalCommentStorage.ts`,\n`sidecarCommentStorage.ts`, `sideNoteSyncEventStore.ts`,\n`commentSyncPolicy.ts`, `commentManager.ts`\nTests: `canonicalCommentStorage.test.ts`,\n`sidecarCommentStorage.test.ts`, `sideNoteSyncEvents.test.ts`,\n`commentMutationController.test.ts`","x":40,"y":764,"width":360,"height":326,"color":"3"},
{"id":"mutation-controller","type":"file","file":"Aside/src/comments/commentMutationController.ts","x":440,"y":762,"width":500,"height":72,"color":"3"},
{"id":"mutation-persistence","type":"file","file":"Aside/src/comments/commentPersistenceController.ts","x":440,"y":852,"width":500,"height":72,"color":"3"},
{"id":"mutation-storage","type":"file","file":"Aside/src/core/storage/canonicalCommentStorage.ts","x":440,"y":942,"width":240,"height":72,"color":"3"},
{"id":"mutation-sidecar-storage","type":"file","file":"Aside/src/core/storage/sidecarCommentStorage.ts","x":700,"y":942,"width":240,"height":72,"color":"3"},
{"id":"mutation-sync-events","type":"file","file":"Aside/src/sync/sideNoteSyncEventStore.ts","x":440,"y":1018,"width":500,"height":72,"color":"3"},
{"id":"navigation-summary","type":"text","text":"Edit here:\nProtocol handler behavior,\nleaf choice, reveal flow,\nshare-side-note links, card action controls,\nfile reuse, and index click behavior.\n\nSee: `commentNavigationPlanner.ts`,\n`commentPointerAction.ts`,\n`commentHighlightController.ts`,\n`sidebarCommentActions.ts`\nTests: `sidebarIndexContext.test.ts`,\n`commentHighlightController.test.ts`,\n`sidebarPersistedComment.test.ts`, `commentPointerAction.test.ts`","x":1300,"y":764,"width":360,"height":260,"color":"4"},
{"id":"navigation-controller","type":"file","file":"Aside/src/comments/commentNavigationController.ts","x":1700,"y":762,"width":500,"height":72,"color":"4"},
{"id":"navigation-registration","type":"file","file":"Aside/src/app/pluginRegistrationController.ts","x":1700,"y":852,"width":500,"height":72,"color":"4"},
{"id":"navigation-sidebar","type":"file","file":"Aside/src/ui/views/sidebarPersistedComment.ts","x":1700,"y":942,"width":240,"height":72,"color":"4"},
{"id":"navigation-actions","type":"file","file":"Aside/src/ui/views/sidebarCommentActions.ts","x":1960,"y":942,"width":240,"height":72,"color":"4"},
{"id":"backbone-manager","type":"file","file":"Aside/src/commentManager.ts","x":860,"y":124,"width":260,"height":78,"color":"2"},
{"id":"backbone-index","type":"file","file":"Aside/src/index/AggregateCommentIndex.ts","x":1190,"y":124,"width":300,"height":78,"color":"2"},
{"id":"backbone-cache","type":"file","file":"Aside/src/cache/ParsedNoteCache.ts","x":1560,"y":124,"width":280,"height":78,"color":"2"},
{"id":"capture-summary","type":"text","text":"Edit here:\nDraft start behavior, validation,\ncommand wiring, host file choice.\n\nSee: `pluginRegistrationController.ts`,\n`AsideView.ts`\nTests: `commentEntryController.test.ts`,\n`pluginRegistrationController.test.ts`","x":40,"y":394,"width":360,"height":196,"color":"5"},
{"id":"capture-session","type":"file","file":"Aside/src/comments/commentSessionController.ts","x":440,"y":482,"width":500,"height":72,"color":"5"},
{"id":"capture-draft-store","type":"file","file":"Aside/src/domain/DraftSessionStore.ts","x":440,"y":572,"width":500,"height":72,"color":"5"},
{"id":"draft-tools-summary","type":"text","text":"Edit here:\nKeyboard behavior, markdown formatting,\nlink/tag suggest, textarea sizing,\ndraft card interaction.\n\nSee: `commentEditorTags.ts`,\n`SideNoteLinkSuggestModal.ts`, `SideNoteTagSuggestModal.ts`\nTests: `commentEditorFormatting.test.ts`,\n`sidebarDraftEditor.test.ts`","x":1300,"y":394,"width":360,"height":228,"color":"5"},
{"id":"draft-tools-formatting","type":"file","file":"Aside/src/ui/editor/commentEditorFormatting.ts","x":1700,"y":572,"width":500,"height":72,"color":"5"},
{"id":"guide-text","type":"text","text":"# Feature Map Canvas\nUse this when you know the feature,\nnot the file.\n\nThis canvas is the maintained feature-first map.","x":30,"y":-132,"width":560,"height":136,"color":"6"},
{"id":"guide-read","type":"text","text":"Read it like this:\n1. Pick the feature box.\n2. Open the key files.\n3. Use the note in each box for support files and tests.","x":1380,"y":-126,"width":760,"height":112,"color":"6"},
{"id":"backbone-summary","type":"text","text":"Core pieces reused across features.\n`main.ts` wires the app.\n`commentManager.ts` holds loaded comments and lookup indexes.\n`AggregateCommentIndex.ts` powers vault-wide views.\n`ParsedNoteCache.ts` avoids repeated parse work.","x":36,"y":110,"width":420,"height":134,"color":"2"},
{"id":"backbone-main","type":"file","file":"Aside/src/main.ts","x":540,"y":124,"width":250,"height":78,"color":"2"},
{"id":"backbone-comment-lookup","type":"file","file":"Aside/src/core/commentLookupIndex.ts","x":1870,"y":124,"width":300,"height":78,"color":"2"},
{"id":"capture-entry","type":"file","file":"Aside/src/comments/commentEntryController.ts","x":440,"y":392,"width":500,"height":72,"color":"5"},
{"id":"draft-tools-editor","type":"file","file":"Aside/src/ui/views/sidebarDraftEditor.ts","x":1700,"y":392,"width":500,"height":72,"color":"5"},
{"id":"draft-tools-card","type":"file","file":"Aside/src/ui/views/sidebarDraftComment.ts","x":1700,"y":482,"width":500,"height":72,"color":"5"},
{"id":"guide-architecture","type":"file","file":"Aside/docs/architecture.canvas","x":760,"y":-118,"width":280,"height":86,"color":"6"},
{"id":"workspace-context","type":"file","file":"Aside/src/app/workspaceContextController.ts","x":440,"y":1512,"width":500,"height":72,"color":"3"},
{"id":"workspace-view","type":"file","file":"Aside/src/app/workspaceViewController.ts","x":440,"y":1602,"width":500,"height":72,"color":"3"},
{"id":"workspace-main","type":"file","file":"Aside/src/main.ts","x":440,"y":1692,"width":500,"height":72,"color":"3"},
{"id":"settings-summary","type":"text","text":"Edit here:\nIndex note path, header image,\ncaption, setting normalization,\nrename and move behavior.\n\nSee: `allCommentsNote.ts`\nTests: `indexNoteSettingsController.test.ts`,\n`allCommentsNote.test.ts`","x":1300,"y":1514,"width":360,"height":220,"color":"3"},
{"id":"settings-controller","type":"file","file":"Aside/src/settings/indexNoteSettingsController.ts","x":1700,"y":1602,"width":500,"height":72,"color":"3"},
{"id":"settings-planner","type":"file","file":"Aside/src/settings/indexNoteSettingsPlanner.ts","x":1700,"y":1692,"width":500,"height":72,"color":"3"},
{"id":"derived-mentions","type":"file","file":"Aside/src/core/text/commentMentions.ts","x":1060,"y":1864,"width":470,"height":72,"color":"2"},
{"id":"derived-tags","type":"file","file":"Aside/src/core/text/commentTags.ts","x":1600,"y":1864,"width":470,"height":72,"color":"2"},
{"id":"highlights-controller","type":"file","file":"Aside/src/comments/commentHighlightController.ts","x":440,"y":1142,"width":500,"height":72,"color":"4"},
{"id":"highlights-ranges","type":"file","file":"Aside/src/core/derived/editorHighlightRanges.ts","x":440,"y":1322,"width":500,"height":72,"color":"4"},
{"id":"workspace-summary","type":"text","text":"Edit here:\nWhich file the sidebar follows,\nindex-note special-casing,\npreview and source mode sync,\nvisible-file refresh behavior.\n\nSee: `workspaceContextPlanner.ts`, `main.ts`\nTests: `sidebarIndexContext.test.ts`,\n`workspaceViewController.test.ts`, `sidebarLeafActivation.test.ts`","x":40,"y":1514,"width":360,"height":236,"color":"3"},
{"id":"settings-view","type":"file","file":"Aside/src/ui/settings/AsideSetting.ts","x":1700,"y":1512,"width":500,"height":72,"color":"3"},
{"id":"derived-summary","type":"text","text":"Edit here:\nWiki-link extraction, tag extraction,\nmetadata cache augmentation,\nderived link counts used by higher-level features.\n\nTests: `derivedCommentMetadata.test.ts`,\n`commentMentions.test.ts`, `commentEditorTags.test.ts`","x":40,"y":1868,"width":420,"height":220,"color":"2"},
{"id":"derived-metadata","type":"file","file":"Aside/src/core/derived/derivedCommentMetadata.ts","x":520,"y":1864,"width":470,"height":72,"color":"2"},
{"id":"highlights-summary","type":"text","text":"Edit here:\nEditor decorations, reading-view highlights,\nanchor re-resolution,\nand active or revealed styling.\n\nSee: `commentHighlightPlanner.ts`,\n`commentHighlightClickTarget.ts`, `commentAnchors.ts`\nTests: `commentHighlightController.test.ts`,\n`anchorResolver.test.ts`, `editorHighlightRanges.test.ts`","x":40,"y":1144,"width":360,"height":248,"color":"4"},
{"id":"highlights-anchor","type":"file","file":"Aside/src/core/anchors/anchorResolver.ts","x":440,"y":1232,"width":500,"height":72,"color":"4"},
{"id":"index-summary","type":"text","text":"Edit here:\nGenerated `Aside index.md`,\npage-vs-anchored ordering,\nindex sidebar grouping,\nfile-heading click filters,\nthought trail, file filter,\ntoolbar controls, index card actions,\nand styling.\n\nSee: `sidebarToolbarRenderer.ts`,\n`sidebarThoughtTrailRenderer.ts`,\n`sidebarCommentActions.ts`, `styles.css`\nTests: `allCommentsNote.test.ts`,\n`thoughtTrail.test.ts`, `viewState.test.ts`","x":1300,"y":1144,"width":360,"height":280,"color":"2"},
{"id":"index-all-comments","type":"file","file":"Aside/src/core/derived/allCommentsNote.ts","x":1700,"y":1142,"width":500,"height":72,"color":"2"},
{"id":"index-toolbar-renderer","type":"file","file":"Aside/src/ui/views/sidebarToolbarRenderer.ts","x":1700,"y":1232,"width":500,"height":72,"color":"2"},
{"id":"index-view","type":"file","file":"Aside/src/ui/views/AsideView.ts","x":1700,"y":1322,"width":240,"height":72,"color":"2"},
{"id":"index-thought-renderer","type":"file","file":"Aside/src/ui/views/sidebarThoughtTrailRenderer.ts","x":1960,"y":1322,"width":240,"height":72,"color":"2"},
{"id":"diagnostics-summary","type":"text","text":"Edit here:\nLocal-only sidebar debugger button,\ndaily JSONL storage, payload sanitization,\npaste/drop inspector input, window filters,\nand UTC-store/local-render time handling.\n\n`sidebarSupportButton.ts` owns the local-only button. This path is intentionally hidden in `runtime=release`.","x":40,"y":2254,"width":420,"height":248,"color":"4"},
{"id":"diagnostics-entry","type":"file","file":"Aside/src/ui/views/AsideView.ts","x":520,"y":2252,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-main","type":"file","file":"Aside/src/main.ts","x":1060,"y":2252,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-log-service","type":"file","file":"Aside/src/logs/logService.ts","x":1600,"y":2252,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-planner","type":"file","file":"Aside/src/ui/views/supportReportPlanner.ts","x":520,"y":2342,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-modal","type":"file","file":"Aside/src/ui/modals/SupportLogInspectorModal.ts","x":1060,"y":2342,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-time","type":"file","file":"Aside/src/core/time/dateTime.ts","x":1600,"y":2342,"width":470,"height":72,"color":"4"},
{"id":"diagnostics-support-button","type":"file","file":"Aside/src/ui/views/sidebarSupportButton.ts","x":520,"y":2432,"width":470,"height":72,"color":"4"}
],
"edges":[
{"id":"edge-guide-backbone","fromNode":"guide-text","fromSide":"bottom","toNode":"backbone-summary","toSide":"top"},
{"id":"edge-backbone-capture","fromNode":"backbone-main","fromSide":"bottom","toNode":"capture-summary","toSide":"top"},
{"id":"edge-backbone-mutation","fromNode":"backbone-manager","fromSide":"bottom","toNode":"mutation-summary","toSide":"top"},
{"id":"edge-backbone-index","fromNode":"backbone-index","fromSide":"bottom","toNode":"index-summary","toSide":"top"},
{"id":"edge-backbone-derived","fromNode":"backbone-cache","fromSide":"bottom","toNode":"derived-summary","toSide":"top"},
{"id":"edge-capture-draft","fromNode":"capture-summary","fromSide":"right","toNode":"draft-tools-summary","toSide":"left"},
{"id":"edge-draft-mutation","fromNode":"draft-tools-summary","fromSide":"left","toNode":"mutation-summary","toSide":"right"},
{"id":"edge-mutation-navigation","fromNode":"mutation-summary","fromSide":"right","toNode":"navigation-summary","toSide":"left"},
{"id":"edge-mutation-highlights","fromNode":"mutation-summary","fromSide":"bottom","toNode":"highlights-summary","toSide":"top"},
{"id":"edge-mutation-index","fromNode":"mutation-summary","fromSide":"right","toNode":"index-summary","toSide":"left"},
{"id":"edge-workspace-settings","fromNode":"workspace-summary","fromSide":"right","toNode":"settings-summary","toSide":"left"},
{"id":"edge-settings-index","fromNode":"settings-summary","fromSide":"top","toNode":"index-summary","toSide":"bottom"},
{"id":"edge-derived-index","fromNode":"derived-summary","fromSide":"top","toNode":"index-summary","toSide":"bottom"},
{"id":"edge-backbone-diagnostics","fromNode":"backbone-main","fromSide":"bottom","toNode":"diagnostics-summary","toSide":"top"}
]
}