{"nodes": [{"id": "todo_todo", "label": "TODO Backlog", "file_type": "document", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_hydrate_root", "label": "TODO 1: Make hydrateRoot(document) merge-ready", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_verification_link_origin", "label": "TODO 2: Tighten verification-link origin trust", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_remove_hs256_fallback", "label": "TODO 3: Remove legacy HS256 JWT fallback", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_token_introspection", "label": "TODO 4: Revocation-aware token introspection", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_vercel_webhooks", "label": "TODO 5: Replace Vercel status polling with webhooks", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_cross_tab_sync", "label": "TODO 6: Cross-tab sync for persisted thingtime state", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_admin_endpoint_lockdown", "label": "TODO 7: Lock down unauthenticated admin/data endpoints", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_auth_rate_limiting", "label": "TODO 8: Auth endpoint rate limiting", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_persisted_date_corruption", "label": "TODO 9: Persisted strings corrupting into Dates", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_persisted_code_execution", "label": "TODO 10: Persisted-state code execution removed; strict CSP", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_feed_duplicate_posts", "label": "TODO 11: Feed duplicate posts in ranked mode", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_postcard_memo_defeated", "label": "TODO 12: React.memo on PostCard defeated", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_undo_listener_hijack", "label": "TODO 13: Global Cmd/Ctrl+Z listener hijacks native undo", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_debug_leaks", "label": "TODO 14: Remove render-time debug leaks", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_dx_ratchet", "label": "TODO 15: DX ratchet \u2014 typecheck, headless test runner, CI", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "todo_todo_delight_growth_ideas", "label": "TODO 16: Delight and growth ideas", "file_type": "rationale", "source_file": "TODO/TODO.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "todo_todo", "target": "todo_todo_hydrate_root", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_verification_link_origin", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_remove_hs256_fallback", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_token_introspection", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_vercel_webhooks", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_cross_tab_sync", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_admin_endpoint_lockdown", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_auth_rate_limiting", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_persisted_date_corruption", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_persisted_code_execution", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_feed_duplicate_posts", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_postcard_memo_defeated", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_undo_listener_hijack", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_debug_leaks", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_dx_ratchet", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo", "target": "todo_todo_delight_growth_ideas", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_remove_hs256_fallback", "target": "readme_jwt_auth", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 0.9, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_token_introspection", "target": "readme_jwt_auth", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 0.9, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_vercel_webhooks", "target": "readme_vercel_deployment_status", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 0.9, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_admin_endpoint_lockdown", "target": "readme_service_account_provisioning", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 0.9, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_admin_endpoint_lockdown", "target": "readme_mongodb_configuration", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 0.8, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_auth_rate_limiting", "target": "testing_rate_limiting", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_persisted_code_execution", "target": "testing_persist_codec", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_verification_link_origin", "target": "readme_email_delivery", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}, {"source": "todo_todo_dx_ratchet", "target": "testing_web_ci_contexts", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.7, "source_file": "TODO/TODO.md", "source_location": null, "weight": 1.0}], "hyperedges": []}