522 lines
17 KiB
JSON
522 lines
17 KiB
JSON
{
|
|
"nodes": [
|
|
{
|
|
"id": "internal_play_store_listing",
|
|
"label": "Play Store Listing — ReBreak (DRAFT v0.1.0)",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": "2026-05-09",
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "internal_play_store_listing_accessibility_justification",
|
|
"label": "BIND_ACCESSIBILITY_SERVICE Justification",
|
|
"file_type": "rationale",
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "internal_play_store_listing_vpn_justification",
|
|
"label": "BIND_VPN_SERVICE Justification (local DNS filter)",
|
|
"file_type": "rationale",
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "internal_lyra_ai_companion",
|
|
"label": "Lyra — AI Recovery Companion",
|
|
"file_type": "concept",
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tools_spike_domains",
|
|
"label": "Spike Domains List (gambling domains)",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/modules/rebreak-protection/tools/spike-domains.txt",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "bloomfiltertool_readme",
|
|
"label": "BloomFilterTool README",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/BloomFilterTool/README.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": "Apple Inc.",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "bloomfiltertool_input_urls",
|
|
"label": "BloomFilterTool input_urls (sample)",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/BloomFilterTool/BloomFilterTool/input_urls.txt",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "server_pir_server_readme",
|
|
"label": "Setting up a PIR Server for URL Filtering",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/PIR Server/README.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": "Apple Inc.",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "filteringtrafficbyurl_readme",
|
|
"label": "Filtering Traffic by URL (Apple SimpleURLFilter sample)",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/README.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": "Apple Inc.",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "filteringtrafficbyurl_license",
|
|
"label": "FilteringTrafficByURL LICENSE (Apple, MIT-style)",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/LICENSE.txt",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": "Apple Inc.",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_ios_vpn_filter_research",
|
|
"label": "iOS VPN/DNS Tunnel Gambling-Filter Research & Proposal",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": "2026-05-21",
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_nepackettunnelprovider_choice",
|
|
"label": "NEPacketTunnelProvider chosen over NEDNSProxyProvider/NEAppProxyProvider",
|
|
"file_type": "rationale",
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_dns_sinkhole_design",
|
|
"label": "DNS-Sinkhole NXDOMAIN Filter Design (Android parity)",
|
|
"file_type": "concept",
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_webcontent_layer2_research",
|
|
"label": "WebContent Layer-2 ManagedSettings Filter Research",
|
|
"file_type": "document",
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": "2026-05-21",
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_layer2_50_domain_cap",
|
|
"label": "iOS webContent 50-Domain Cap (Apple-documented)",
|
|
"file_type": "concept",
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "tmp_layer2_not_fallback_recommendation",
|
|
"label": "Layer-2 not built as Always-On Fallback (too weak)",
|
|
"file_type": "rationale",
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_consent_gap_plan",
|
|
"label": "Consent-Gap-Plan — Art. 9 GDPR Mail Auto-Delete",
|
|
"file_type": "document",
|
|
"source_file": "backend/docs/consent-gap-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": "2026-05-13",
|
|
"author": "rebreak-backend-agent",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_consent_logs_table",
|
|
"label": "consent_logs append-only audit trail",
|
|
"file_type": "concept",
|
|
"source_file": "backend/docs/consent-gap-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_mail_custom_keywords_plan",
|
|
"label": "Mail Custom Keywords — Architecture Plan",
|
|
"file_type": "document",
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": "2026-05-13",
|
|
"author": "Mo (Mail-Architektur-Agent)",
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_user_mail_keywords_table",
|
|
"label": "user_mail_keywords table (Pro/Legend custom filters)",
|
|
"file_type": "concept",
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_keywords_separate_table_rationale",
|
|
"label": "Keywords user-scoped in separate table (not connection column)",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "docs_keyword_plan_tier_gating",
|
|
"label": "Custom Keyword Tier-Gating (Free 0 / Pro 10 / Legend 50)",
|
|
"file_type": "concept",
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
},
|
|
{
|
|
"id": "shared_blocklist_bin_pipeline",
|
|
"label": "blocklist.bin SHA-256 prefix hash pipeline (cross-platform)",
|
|
"file_type": "concept",
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"source_url": null,
|
|
"captured_at": null,
|
|
"author": null,
|
|
"contributor": null
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"source": "internal_play_store_listing_accessibility_justification",
|
|
"target": "internal_play_store_listing",
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "internal_play_store_listing_vpn_justification",
|
|
"target": "internal_play_store_listing",
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "internal_play_store_listing",
|
|
"target": "internal_lyra_ai_companion",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/docs/internal/PLAY_STORE_LISTING.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "filteringtrafficbyurl_readme",
|
|
"target": "server_pir_server_readme",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "filteringtrafficbyurl_readme",
|
|
"target": "bloomfiltertool_readme",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "bloomfiltertool_readme",
|
|
"target": "server_pir_server_readme",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/BloomFilterTool/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "server_pir_server_readme",
|
|
"target": "bloomfiltertool_readme",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/PIR Server/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "bloomfiltertool_readme",
|
|
"target": "bloomfiltertool_input_urls",
|
|
"relation": "references",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.85,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/BloomFilterTool/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "filteringtrafficbyurl_readme",
|
|
"target": "filteringtrafficbyurl_license",
|
|
"relation": "references",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.75,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/README.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_ios_vpn_filter_research",
|
|
"target": "tmp_nepackettunnelprovider_choice",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_nepackettunnelprovider_choice",
|
|
"target": "tmp_ios_vpn_filter_research",
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_ios_vpn_filter_research",
|
|
"target": "tmp_dns_sinkhole_design",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_ios_vpn_filter_research",
|
|
"target": "shared_blocklist_bin_pipeline",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_ios_vpn_filter_research",
|
|
"target": "filteringtrafficbyurl_readme",
|
|
"relation": "cites",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.75,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_webcontent_layer2_research",
|
|
"target": "tmp_layer2_50_domain_cap",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_layer2_not_fallback_recommendation",
|
|
"target": "tmp_webcontent_layer2_research",
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_webcontent_layer2_research",
|
|
"target": "tmp_ios_vpn_filter_research",
|
|
"relation": "conceptually_related_to",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.85,
|
|
"source_file": "apps/rebreak-native/tmp/webcontent-layer2-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tmp_dns_sinkhole_design",
|
|
"target": "tmp_layer2_50_domain_cap",
|
|
"relation": "semantically_similar_to",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.65,
|
|
"source_file": "apps/rebreak-native/tmp/ios-vpn-filter-research.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "docs_consent_gap_plan",
|
|
"target": "docs_consent_logs_table",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "backend/docs/consent-gap-plan.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "docs_mail_custom_keywords_plan",
|
|
"target": "docs_user_mail_keywords_table",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "docs_mail_custom_keywords_plan",
|
|
"target": "docs_keyword_plan_tier_gating",
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "docs_keywords_separate_table_rationale",
|
|
"target": "docs_user_mail_keywords_table",
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "docs_mail_custom_keywords_plan",
|
|
"target": "docs_consent_gap_plan",
|
|
"relation": "conceptually_related_to",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.65,
|
|
"source_file": "backend/docs/mail-custom-keywords-plan.md",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tools_spike_domains",
|
|
"target": "shared_blocklist_bin_pipeline",
|
|
"relation": "conceptually_related_to",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.65,
|
|
"source_file": "apps/rebreak-native/modules/rebreak-protection/tools/spike-domains.txt",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
},
|
|
{
|
|
"source": "tools_spike_domains",
|
|
"target": "tmp_layer2_50_domain_cap",
|
|
"relation": "conceptually_related_to",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.55,
|
|
"source_file": "apps/rebreak-native/modules/rebreak-protection/tools/spike-domains.txt",
|
|
"source_location": null,
|
|
"weight": 1.0
|
|
}
|
|
],
|
|
"hyperedges": [
|
|
{
|
|
"nodes": ["filteringtrafficbyurl_readme", "bloomfiltertool_readme", "server_pir_server_readme"],
|
|
"relation": "conceptually_related_to",
|
|
"confidence": "EXTRACTED",
|
|
"confidence_score": 1.0,
|
|
"source_file": "apps/rebreak-native/tmp/FilteringTrafficByURL/README.md",
|
|
"weight": 1.0
|
|
}
|
|
],
|
|
"input_tokens": 0,
|
|
"output_tokens": 0
|
|
}
|