logseq-matryca-parser 1.8.2__tar.gz → 1.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/ci.yml +5 -1
  2. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/pypi_publish.yml +4 -1
  3. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/AGENTS.md +1 -1
  4. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/CHANGELOG.md +32 -0
  5. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/CONTRIBUTING.md +1 -1
  6. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/PKG-INFO +24 -5
  7. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/README.md +23 -4
  8. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/RELEASE_HIGHLIGHTS.md +17 -5
  9. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/SECURITY.md +3 -4
  10. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/ARCHITECTURE.md +18 -0
  11. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/CLEAN_CODE_ARCHITECTURE.md +32 -5
  12. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/COOKBOOK.md +7 -0
  13. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/GOOD_FIRST_ISSUES.md +1 -1
  14. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/README.md +1 -0
  15. logseq_matryca_parser-1.9.0/docs/decisions/ADR-0004-PARSER-PLUMBER-BOUNDARY.md +81 -0
  16. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/index.md +1 -0
  17. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/index.md +1 -0
  18. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/log.md +15 -0
  19. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/maintained.toml +2 -0
  20. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/API_STABILITY.md +22 -3
  21. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/index.md +1 -1
  22. logseq_matryca_parser-1.9.0/docs/security/DEPENDENCY_ADVISORY_EXCEPTIONS.md +76 -0
  23. logseq_matryca_parser-1.9.0/docs/superpowers/plans/2026-08-30-v1.8.2-repository-completion.md +324 -0
  24. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-backlog-reconciliation.md +36 -0
  25. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-baseline.md +44 -0
  26. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-final-audit.md +25 -0
  27. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-publication.md +29 -0
  28. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-qualification.md +28 -0
  29. logseq_matryca_parser-1.9.0/docs/superpowers/specs/2026-08-30-v1.8.2-repository-completion-design.md +101 -0
  30. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/metrics/index.json +1 -1
  31. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/metrics/quarters/2026-Q3.json +3236 -1475
  32. logseq_matryca_parser-1.9.0/release-bundle/RELEASE_NOTES.md +31 -0
  33. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/__init__.py +2 -1
  34. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/_version.py +1 -1
  35. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/graph.py +205 -31
  36. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic_commands.py +2 -2
  37. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_check_wheel_contract.py +1 -1
  38. logseq_matryca_parser-1.9.0/tests/test_dependency_advisory_exception.py +53 -0
  39. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_kinetic.py +34 -0
  40. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_layer_boundary.py +16 -0
  41. logseq_matryca_parser-1.9.0/tests/test_plumber_boundary_docs.py +37 -0
  42. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_public_api_contract.py +19 -0
  43. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_quality_gate_contract.py +3 -4
  44. logseq_matryca_parser-1.9.0/tests/test_snapshot_graph.py +277 -0
  45. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/typing_samples/public_api.py +7 -1
  46. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/uv.lock +6 -6
  47. logseq_matryca_parser-1.8.2/release-bundle/RELEASE_NOTES.md +0 -26
  48. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.cursorignore +0 -0
  49. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.cursorrules +0 -0
  50. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.gitattributes +0 -0
  51. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/CODEOWNERS +0 -0
  52. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/FUNDING.yml +0 -0
  53. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  54. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/clean_architecture.yml +0 -0
  55. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  56. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  57. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  58. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/clean_arch_issue_numbers.txt +0 -0
  59. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/copilot-instructions.md +0 -0
  60. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/dependabot.yml +0 -0
  61. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/dependency-license-overrides.toml +0 -0
  62. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/labels.yml +0 -0
  63. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/scripts/create_clean_arch_issues.sh +0 -0
  64. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/scripts/create_good_first_issues.sh +0 -0
  65. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/daily-metrics.yml +0 -0
  66. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/dependency-hygiene.yml +0 -0
  67. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/dependency-review.yml +0 -0
  68. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/parser-adversarial.yml +0 -0
  69. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/scorecard.yml +0 -0
  70. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.github/workflows/workflow-analysis.yml +0 -0
  71. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.gitignore +0 -0
  72. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.pre-commit-config.yaml +0 -0
  73. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/.repomixignore +0 -0
  74. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/CITATION.cff +0 -0
  75. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/CLAUDE.md +0 -0
  76. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/CODE_OF_CONDUCT.md +0 -0
  77. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/GOVERNANCE.md +0 -0
  78. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/LICENSE +0 -0
  79. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/MAINTAINERS.md +0 -0
  80. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/Makefile +0 -0
  81. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/NOTICE +0 -0
  82. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/SUPPORT.md +0 -0
  83. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/claude-skill-logseq-read/SKILL.md +0 -0
  84. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/claude-skill-logseq-read/scripts/parse_logseq.py +0 -0
  85. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/AAIF_ALIGNMENT.md +0 -0
  86. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/AI_CONTRIBUTION_POLICY.md +0 -0
  87. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/BUG_HUNT_REPORT.md +0 -0
  88. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/CI_ASSURANCE.md +0 -0
  89. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/CODEQL.md +0 -0
  90. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/DOCUMENTATION_SYSTEM.md +0 -0
  91. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/ISSUE_TRIAGE_POLICY.md +0 -0
  92. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/LSDOC_REFERENCE_STUDY_AND_EXECUTION_PLAN_2026-08-16.md +0 -0
  93. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/README_READABILITY_REPORT_2026-08-08.md +0 -0
  94. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/RELEASE_PROCESS.md +0 -0
  95. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_GOVERNANCE_AAIF_STUDY_2026-08-19.md +0 -0
  96. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_IMPROVEMENT_STUDY_2026-07-28.md +0 -0
  97. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_STELLAR_ROADMAP_2026-08-06.md +0 -0
  98. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/ROADMAP_2026-2027.md +0 -0
  99. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md +0 -0
  100. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md +0 -0
  101. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0003-AAIF-SUBMISSION-GATE.md +0 -0
  102. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-001-external-oracle-boundary.md +0 -0
  103. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-002-local-graph-assurance-boundary.md +0 -0
  104. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/ARCHITECTURE_BLUEPRINT.md +0 -0
  105. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/CODE_SCAFFOLD.md +0 -0
  106. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_ASSET_RESOLUTION_SPEC.md +0 -0
  107. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_DATASCRIPT_MAPPING.md +0 -0
  108. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_TEMPORAL_ONTOLOGY.md +0 -0
  109. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/OFFICIAL_MLDOC_SPECS.md +0 -0
  110. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/README.md +0 -0
  111. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/design-docs/REFERENCE_SPEC.md +0 -0
  112. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/error_log.md +0 -0
  113. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/goals/LSDOC_PARSER_ASSURANCE_GOAL.md +0 -0
  114. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/ASSURANCE_TERRA_HANDOFF_2026-08-21.md +0 -0
  115. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/LOCAL_CODE_STUDY.md +0 -0
  116. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/M1A_CORRECTIVE_HARDENING_RESTART_HANDOFF_2026-08-16.md +0 -0
  117. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/M5_LOCAL_GRAPH_ASSURANCE_REVIEW_HANDOFF_2026-08-18.md +0 -0
  118. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/POST_V1_8_1_BACKLOG_EXECUTION_2026-08-25.md +0 -0
  119. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/internal/STATIC_ANALYSIS_POLICY.md +0 -0
  120. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/logseq_ast_primer.md +0 -0
  121. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/quality/CLEAN_ARCH_BACKLOG.md +0 -0
  122. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/quality/GITHUB_CLEAN_ARCH_ROADMAP.md +0 -0
  123. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/quality/ISSUE_RECONCILIATION_2026-08-06.md +0 -0
  124. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/quality/ISSUE_TRIAGE_2026-07.md +0 -0
  125. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/quality/README.md +0 -0
  126. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/AGENT_ACTION_CONTRACT.md +0 -0
  127. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/CONFORMANCE_SUPPORT_MATRIX.md +0 -0
  128. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/DEPENDENCY_LICENSE_POLICY.md +0 -0
  129. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/DIAGNOSTICS.md +0 -0
  130. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/FILESYSTEM_SAFETY.md +0 -0
  131. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/LOCAL_GRAPH_ASSURANCE.md +0 -0
  132. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/reference/PERFORMANCE_EVIDENCE.md +0 -0
  133. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/rfc/OLLAMA_RAG.md +0 -0
  134. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/rfc/SOURCE_LOCATION_RFC.md +0 -0
  135. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_AGENT_NATIVE_XRAY.md +0 -0
  136. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_CLI_HYDRATION_AND_ENRICHMENT.md +0 -0
  137. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_CONTEXT_SYNTHESIS_AND_SCOPING.md +0 -0
  138. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_EMBED_EXPANSION_AND_FLUENT_QUERIES.md +0 -0
  139. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_GRAPH_RAG_SEMANTICS.md +0 -0
  140. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_HEADLESS_WRITER.md +0 -0
  141. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_INCREMENTAL_WATCHER.md +0 -0
  142. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_INLINE_SHIELD_AND_NAMESPACES.md +0 -0
  143. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_OBSIDIAN_ADAPTER.md +0 -0
  144. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_ROBUSTNESS_AND_SOFT_BREAKS.md +0 -0
  145. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_TOML_FIX_AND_PYPI_DISTRIBUTION.md +0 -0
  146. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_UUID_AND_GRAPH_SUPERPOWERS.md +0 -0
  147. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/security/DAILY_METRICS_THREAT_MODEL.md +0 -0
  148. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-20-parser-lexical-state.md +0 -0
  149. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-20-runtime-evidence-harness.md +0 -0
  150. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-21-graph-mutation-coherence.md +0 -0
  151. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-21-post-m9-reconciliation.md +0 -0
  152. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-24-local-assurance-coverage.md +0 -0
  153. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-30-native-github-actions.md +0 -0
  154. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-20-parser-lexical-state-design.md +0 -0
  155. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-21-graph-mutation-coherence-design.md +0 -0
  156. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-24-meaningful-test-coverage-design.md +0 -0
  157. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-30-native-github-actions-design.md +0 -0
  158. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/examples/demo_logseq_journal.md +0 -0
  159. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/examples/run_demo.py +0 -0
  160. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/examples/run_synapse_rag.py +0 -0
  161. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/legacy/local_digestor.py +0 -0
  162. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/lib/bindings/utils.js +0 -0
  163. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/lib/tom-select/tom-select.complete.min.js +0 -0
  164. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/lib/tom-select/tom-select.css +0 -0
  165. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/lib/vis-9.1.2/vis-network.css +0 -0
  166. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/lib/vis-9.1.2/vis-network.min.js +0 -0
  167. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/llms.txt +0 -0
  168. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/metrics/quarters/2026-Q2.json +0 -0
  169. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/pyproject.toml +0 -0
  170. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/repomix-output-parser.xml +0 -0
  171. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/__init__.py +0 -0
  172. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/archive_repository_metrics.py +0 -0
  173. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/check_documentation.py +0 -0
  174. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/check_release_contract.py +0 -0
  175. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/check_vendor_free_docs.sh +0 -0
  176. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/check_wheel_contract.py +0 -0
  177. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/debug_pre_release.py +0 -0
  178. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/extract_changelog.py +0 -0
  179. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/generate_supply_chain_evidence.py +0 -0
  180. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/scripts/update_compat_snapshots.py +0 -0
  181. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/.gitignore +0 -0
  182. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/NOTICE +0 -0
  183. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/__main__.py +0 -0
  184. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/_lexical_state.py +0 -0
  185. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/agent_press.py +0 -0
  186. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/agent_writer.py +0 -0
  187. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/diagnostics.py +0 -0
  188. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/exceptions.py +0 -0
  189. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/forge.py +0 -0
  190. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic.py +0 -0
  191. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic_export.py +0 -0
  192. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/lens.py +0 -0
  193. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/local_graph_assurance.py +0 -0
  194. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logos_core.py +0 -0
  195. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logos_parser.py +0 -0
  196. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logseq_markdown.py +0 -0
  197. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logseq_paths.py +0 -0
  198. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/py.typed +0 -0
  199. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/pyproject.toml +0 -0
  200. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/synapse.py +0 -0
  201. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/synapse_embed.py +0 -0
  202. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/__init__.py +0 -0
  203. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/deep-refresh-regression.md +0 -0
  204. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/hierarchy-identity.md +0 -0
  205. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/manifest.json +0 -0
  206. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/pages/nested-title-entrypoint.md +0 -0
  207. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/properties-and-links.md +0 -0
  208. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-deep-refresh.exact.json +0 -0
  209. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-hierarchy-identity.exact.json +0 -0
  210. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-nested-entrypoint.exact.json +0 -0
  211. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-properties-links-assets.exact.json +0 -0
  212. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-softbreak-logbook.exact.json +0 -0
  213. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-task-timing.exact.json +0 -0
  214. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/soft-breaks-properties-logbook.md +0 -0
  215. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/tasks-priority-time.md +0 -0
  216. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/__init__.py +0 -0
  217. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/adversarial.py +0 -0
  218. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/corpus.py +0 -0
  219. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/invariants.py +0 -0
  220. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/projection.py +0 -0
  221. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/work_growth.py +0 -0
  222. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/performance/__init__.py +0 -0
  223. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/performance/runtime_evidence.py +0 -0
  224. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/performance/synthetic_vault.py +0 -0
  225. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_agent_press.py +0 -0
  226. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_agent_writer.py +0 -0
  227. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_archive_repository_metrics.py +0 -0
  228. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_check_documentation.py +0 -0
  229. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_check_release_contract.py +0 -0
  230. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_compat_corpus.py +0 -0
  231. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_demo_example.py +0 -0
  232. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_diagnostics.py +0 -0
  233. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_exceptions.py +0 -0
  234. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_extract_changelog.py +0 -0
  235. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_forge.py +0 -0
  236. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_generate_supply_chain_evidence.py +0 -0
  237. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_graph.py +0 -0
  238. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_graph_collisions.py +0 -0
  239. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_graph_concurrency.py +0 -0
  240. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_lens.py +0 -0
  241. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_llms_txt_contract.py +0 -0
  242. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_local_graph_assurance.py +0 -0
  243. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_logos_parser.py +0 -0
  244. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_logseq_markdown.py +0 -0
  245. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_logseq_paths.py +0 -0
  246. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_module_entrypoint.py +0 -0
  247. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_package_version.py +0 -0
  248. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_parser_adversarial.py +0 -0
  249. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_parser_deep_refresh.py +0 -0
  250. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_parser_lexical_state.py +0 -0
  251. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_parser_work_growth.py +0 -0
  252. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_performance_evidence_docs.py +0 -0
  253. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_performance_synthetic_vault.py +0 -0
  254. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_pre_release_roundtrip.py +0 -0
  255. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_runtime_evidence.py +0 -0
  256. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_synapse.py +0 -0
  257. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_synapse_example.py +0 -0
  258. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/tests/test_writer_security.py +0 -0
  259. {logseq_matryca_parser-1.8.2 → logseq_matryca_parser-1.9.0}/zizmor.yml +0 -0
@@ -111,7 +111,11 @@ jobs:
111
111
  --output-file "${{ runner.temp }}/requirements-audit.txt"
112
112
 
113
113
  - name: Audit exported dependencies
114
- run: uv run pip-audit --no-deps --disable-pip -r "${{ runner.temp }}/requirements-audit.txt"
114
+ # Temporary exception governed by docs/security/DEPENDENCY_ADVISORY_EXCEPTIONS.md.
115
+ run: >-
116
+ uv run pip-audit --no-deps --disable-pip
117
+ --ignore-vuln PYSEC-2026-3740
118
+ -r "${{ runner.temp }}/requirements-audit.txt"
115
119
 
116
120
  package-contract:
117
121
  name: Wheel and source distribution contract
@@ -40,7 +40,10 @@ jobs:
40
40
  - name: Audit production dependencies
41
41
  run: |
42
42
  uv export --all-extras --no-dev --no-emit-workspace -o "${{ runner.temp }}/requirements-audit.txt"
43
- uv run pip-audit --no-deps --disable-pip -r "${{ runner.temp }}/requirements-audit.txt"
43
+ # Temporary exception governed by docs/security/DEPENDENCY_ADVISORY_EXCEPTIONS.md.
44
+ uv run pip-audit --no-deps --disable-pip \
45
+ --ignore-vuln PYSEC-2026-3740 \
46
+ -r "${{ runner.temp }}/requirements-audit.txt"
44
47
 
45
48
  - name: Run full quality gate
46
49
  run: make all
@@ -20,7 +20,7 @@ backlinks, exports, visualizations, and AI chunks are derived views.
20
20
  | **SYNAPSE** | Export lineage-aware LangChain documents, LlamaIndex nodes, and enriched chunks | `SynapseAdapter` |
21
21
  | **FORGE** | Serialize JSON, clean Markdown, Logseq pages, and Obsidian-compatible output | `ForgeExporter`, `serialize_logseq_page` |
22
22
  | **KINETIC** | Run CLI parse, export, scan, visualize, agent-read, and agent-write workflows | `matryca-parse` |
23
- | **LENS** | Build an interactive graph visualization | `GraphVisualizer` |
23
+ | **LENS** | Build a compatible reference-topology visualization; planned compatible deprecation follows a later Trama UI migration | `GraphVisualizer` |
24
24
  | **Agent access** | Read a token-efficient X-Ray outline or perform bounded writes | `agent-read`, `agent-write`, `logseq_agent_write` |
25
25
 
26
26
  ## Start here
@@ -7,6 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.9.0] - 2026-09-06
11
+
12
+ ### Added
13
+
14
+ - **In-memory snapshot graph factory** — `SnapshotPage` and
15
+ `LogseqGraph.from_snapshot_pages()` build the existing parser graph indexes from
16
+ bounded, caller-captured Markdown without source discovery, file reopening, or
17
+ graph-root filesystem inspection.
18
+ The stable additive API preserves deterministic ordering, parser identities,
19
+ aliases, backlinks, diagnostics, and opt-in strict modes while keeping source
20
+ capture and cross-product projection outside Parser (#209).
21
+
22
+ ### Security
23
+
24
+ - **Time-bounded NLTK advisory exception** — document the exact optional AI
25
+ dependency exposure, non-reachability evidence, compensating controls,
26
+ owner, upstream advisory, and 2026-10-05 expiry for `PYSEC-2026-3740` while
27
+ no patched NLTK registry release exists. CI and release audits ignore only
28
+ that advisory; all other dependency findings remain fail-closed.
29
+
30
+ ### Changed
31
+
32
+ - **LENS Stage 0 transition** — mark the compatible `GraphVisualizer`,
33
+ `visualize`, and `demo` surfaces as transitional and feature-frozen, with
34
+ Matryca Trama as future user-facing graph-intelligence destination. This
35
+ release makes no API removal or deprecation-warning change (#213).
36
+ - **Parser-Plumber boundary** — record Parser as the deterministic Logseq OG
37
+ parsing library and Plumber as the sole cross-product Logseq gateway to
38
+ Trama and Brain. Existing Parser APIs and LENS behavior remain compatible;
39
+ any Trama UI migration requires a later, separately reviewed compatible
40
+ deprecation plan (#203).
41
+
10
42
  ## [1.8.2] - 2026-08-30
11
43
 
12
44
  ### Changed
@@ -17,7 +17,7 @@ User-facing behavior is documented in:
17
17
  - [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — LOGOS, SYNAPSE, `LogseqGraph`, agents, and data flow
18
18
  - [`docs/internal/LOCAL_CODE_STUDY.md`](docs/internal/LOCAL_CODE_STUDY.md) — maintainer local code audit runbook (not for public issues/CHANGELOG)
19
19
  - [`docs/logseq_ast_primer.md`](docs/logseq_ast_primer.md) — Logseq Spatial Markdown domain rules
20
- - [`CHANGELOG.md`](CHANGELOG.md) — release candidate **1.8.2**, latest published release **1.8.1**, and **Unreleased** changes (Keep a Changelog)
20
+ - [`CHANGELOG.md`](CHANGELOG.md) — latest release **1.9.0** and **Unreleased** changes (Keep a Changelog)
21
21
  - [`docs/RELEASE_PROCESS.md`](docs/RELEASE_PROCESS.md) — version bump, tag, and PyPI publish checklist
22
22
  - [`docs/CI_ASSURANCE.md`](docs/CI_ASSURANCE.md) — pull-request, scheduled, settings-managed, and release checks
23
23
  - [`docs/CODEQL.md`](docs/CODEQL.md) — CodeQL default setup (no custom `codeql.yml`)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logseq-matryca-parser
3
- Version: 1.8.2
3
+ Version: 1.9.0
4
4
  Summary: The Logos Protocol: Deterministic Logseq AST parsing for Matryca.ai.
5
5
  Project-URL: Homepage, https://github.com/MarcoPorcellato/logseq-matryca-parser
6
6
  Project-URL: Repository, https://github.com/MarcoPorcellato/logseq-matryca-parser
@@ -89,7 +89,8 @@ selected by the caller.
89
89
  - **Parse and query:** load one page or a complete vault as a typed AST and graph.
90
90
  - **Build RAG context:** export LangChain documents, LlamaIndex nodes, or enriched chunks.
91
91
  - **Move knowledge:** generate JSON, clean Markdown, or an Obsidian vault.
92
- - **Visualize:** render an interactive graph with LENS.
92
+ - **Visualize:** render an interactive reference-topology graph with the transitional,
93
+ feature-frozen LENS adapter.
93
94
  - **Use an AI agent:** start from [`AGENTS.md`](AGENTS.md) or the concise [`llms.txt`](llms.txt) index.
94
95
 
95
96
  ---
@@ -188,6 +189,13 @@ Logseq Matryca Parser is a deterministic **Stack-Machine engine** that acts as t
188
189
  The base parser is local-first and has zero telemetry. Optional AI, watcher, and
189
190
  visualization dependencies remain lazy. See the [architecture](docs/ARCHITECTURE.md)
190
191
  and [API stability reference](docs/reference/API_STABILITY.md) for exact boundaries.
192
+ For cross-product Logseq OG use, Plumber is the gateway to Trama and Brain;
193
+ Parser remains the deterministic parsing stage. LENS stays compatible while a
194
+ future Trama graph-intelligence migration is separately designed and released.
195
+ Stage 0 marks LENS as transitional and feature-frozen: `GraphVisualizer`,
196
+ `matryca-parse visualize`, and `matryca-parse demo` remain available without a
197
+ deprecation warning. Matryca Trama is the destination for future user-facing
198
+ graph intelligence.
191
199
 
192
200
  ### Data model — `LogseqNode` task fields
193
201
 
@@ -219,7 +227,7 @@ uv sync --all-extras
219
227
  ```
220
228
 
221
229
  ```bash
222
- # 1. Visualize your local graph (LENS)
230
+ # 1. Visualize your local graph (LENS: transitional, feature-frozen)
223
231
  matryca-parse visualize /path/to/logseq/graph my-map.html
224
232
 
225
233
  # 2. Export for AI / RAG (SYNAPSE)
@@ -258,6 +266,14 @@ graph = LogseqGraph.load_directory("/path/to/logseq/graph")
258
266
  page_obj = graph.get_page("My Page") # case-insensitive
259
267
  effective = graph.get_effective_properties(page_obj.root_nodes[0].uuid)
260
268
 
269
+ # Build the same in-memory indexes from caller-captured Markdown without filesystem access.
270
+ from logseq_matryca_parser import SnapshotPage
271
+
272
+ snapshot_graph = LogseqGraph.from_snapshot_pages(
273
+ "/path/to/logseq/graph",
274
+ [SnapshotPage("pages/Project.md", "- Captured block\n")],
275
+ )
276
+
261
277
  # Export to LangChain with lineage metadata
262
278
  docs = SynapseAdapter.to_langchain_documents(page.root_nodes, source_name=page.title)
263
279
 
@@ -288,7 +304,9 @@ assert result["status"] == "success"
288
304
  ---
289
305
 
290
306
  ## 🗺️ Roadmap
291
- - [ ] **Desktop GUI:** Standalone app for non-technical users. [(Join the RFC)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)
307
+ - [ ] **Graph-intelligence UI:** A future Matryca Trama surface may succeed the
308
+ compatible Parser LENS workflow after a separately reviewed migration; Parser
309
+ does not commit to a standalone GUI. [(Track the historical RFC)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)
292
310
  - [x] **Obsidian Adapter:** Native CLI export (`--format obsidian`) with YAML frontmatter and `^` block anchors.
293
311
  - [ ] **Ollama Integration:** One-click local RAG setup. [(RFC draft)](docs/rfc/OLLAMA_RAG.md) · [(Track progress #34)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/34)
294
312
 
@@ -323,7 +341,8 @@ Read the complete [release highlights](RELEASE_HIGHLIGHTS.md), the exhaustive
323
341
  [changelog](CHANGELOG.md), or the signed artifacts on
324
342
  [GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
325
343
 
326
- - **v1.8.2 (release candidate)** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
344
+ - **v1.9.0** — Adds the stable in-memory snapshot graph factory, clarifies the Parser-Plumber boundary, and governs the temporary optional-NLTK advisory exception.
345
+ - **v1.8.2** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
327
346
  - **v1.8.1** — Hardened deep-outline parsing, coherent incremental graph mutations, bounded assurance cleanup, and stable provenance for optional NLTK.
328
347
  - **v1.8.0** — Added bounded privacy-safe local graph assurance, source-location contracts, and the first internal parser line-classification phase.
329
348
  - **v1.7.1** — Added the runnable offline SYNAPSE RAG example and tightened release-note and optional-dependency security checks.
@@ -48,7 +48,8 @@ selected by the caller.
48
48
  - **Parse and query:** load one page or a complete vault as a typed AST and graph.
49
49
  - **Build RAG context:** export LangChain documents, LlamaIndex nodes, or enriched chunks.
50
50
  - **Move knowledge:** generate JSON, clean Markdown, or an Obsidian vault.
51
- - **Visualize:** render an interactive graph with LENS.
51
+ - **Visualize:** render an interactive reference-topology graph with the transitional,
52
+ feature-frozen LENS adapter.
52
53
  - **Use an AI agent:** start from [`AGENTS.md`](AGENTS.md) or the concise [`llms.txt`](llms.txt) index.
53
54
 
54
55
  ---
@@ -147,6 +148,13 @@ Logseq Matryca Parser is a deterministic **Stack-Machine engine** that acts as t
147
148
  The base parser is local-first and has zero telemetry. Optional AI, watcher, and
148
149
  visualization dependencies remain lazy. See the [architecture](docs/ARCHITECTURE.md)
149
150
  and [API stability reference](docs/reference/API_STABILITY.md) for exact boundaries.
151
+ For cross-product Logseq OG use, Plumber is the gateway to Trama and Brain;
152
+ Parser remains the deterministic parsing stage. LENS stays compatible while a
153
+ future Trama graph-intelligence migration is separately designed and released.
154
+ Stage 0 marks LENS as transitional and feature-frozen: `GraphVisualizer`,
155
+ `matryca-parse visualize`, and `matryca-parse demo` remain available without a
156
+ deprecation warning. Matryca Trama is the destination for future user-facing
157
+ graph intelligence.
150
158
 
151
159
  ### Data model — `LogseqNode` task fields
152
160
 
@@ -178,7 +186,7 @@ uv sync --all-extras
178
186
  ```
179
187
 
180
188
  ```bash
181
- # 1. Visualize your local graph (LENS)
189
+ # 1. Visualize your local graph (LENS: transitional, feature-frozen)
182
190
  matryca-parse visualize /path/to/logseq/graph my-map.html
183
191
 
184
192
  # 2. Export for AI / RAG (SYNAPSE)
@@ -217,6 +225,14 @@ graph = LogseqGraph.load_directory("/path/to/logseq/graph")
217
225
  page_obj = graph.get_page("My Page") # case-insensitive
218
226
  effective = graph.get_effective_properties(page_obj.root_nodes[0].uuid)
219
227
 
228
+ # Build the same in-memory indexes from caller-captured Markdown without filesystem access.
229
+ from logseq_matryca_parser import SnapshotPage
230
+
231
+ snapshot_graph = LogseqGraph.from_snapshot_pages(
232
+ "/path/to/logseq/graph",
233
+ [SnapshotPage("pages/Project.md", "- Captured block\n")],
234
+ )
235
+
220
236
  # Export to LangChain with lineage metadata
221
237
  docs = SynapseAdapter.to_langchain_documents(page.root_nodes, source_name=page.title)
222
238
 
@@ -247,7 +263,9 @@ assert result["status"] == "success"
247
263
  ---
248
264
 
249
265
  ## 🗺️ Roadmap
250
- - [ ] **Desktop GUI:** Standalone app for non-technical users. [(Join the RFC)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)
266
+ - [ ] **Graph-intelligence UI:** A future Matryca Trama surface may succeed the
267
+ compatible Parser LENS workflow after a separately reviewed migration; Parser
268
+ does not commit to a standalone GUI. [(Track the historical RFC)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)
251
269
  - [x] **Obsidian Adapter:** Native CLI export (`--format obsidian`) with YAML frontmatter and `^` block anchors.
252
270
  - [ ] **Ollama Integration:** One-click local RAG setup. [(RFC draft)](docs/rfc/OLLAMA_RAG.md) · [(Track progress #34)](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/34)
253
271
 
@@ -282,7 +300,8 @@ Read the complete [release highlights](RELEASE_HIGHLIGHTS.md), the exhaustive
282
300
  [changelog](CHANGELOG.md), or the signed artifacts on
283
301
  [GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
284
302
 
285
- - **v1.8.2 (release candidate)** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
303
+ - **v1.9.0** — Adds the stable in-memory snapshot graph factory, clarifies the Parser-Plumber boundary, and governs the temporary optional-NLTK advisory exception.
304
+ - **v1.8.2** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
286
305
  - **v1.8.1** — Hardened deep-outline parsing, coherent incremental graph mutations, bounded assurance cleanup, and stable provenance for optional NLTK.
287
306
  - **v1.8.0** — Added bounded privacy-safe local graph assurance, source-location contracts, and the first internal parser line-classification phase.
288
307
  - **v1.7.1** — Added the runnable offline SYNAPSE RAG example and tightened release-note and optional-dependency security checks.
@@ -5,13 +5,25 @@ For the exhaustive change history, see the [changelog](CHANGELOG.md). For
5
5
  published artifacts and attestations, see
6
6
  [GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
7
7
 
8
- ## v1.8.2 (release candidate)
8
+ ## Unreleased
9
9
 
10
- Release candidate — strengthens the hosted assurance boundary, clarifies
10
+ ## v1.9.0
11
+
12
+ Minor release — adds a stable in-memory graph factory and clarifies the
13
+ cross-product integration boundary. **No intentional breaking changes** to
14
+ stable package imports or CLI behavior.
15
+
16
+ | Area | Change |
17
+ | :--- | :--- |
18
+ | **Graph API** | `SnapshotPage` and `LogseqGraph.from_snapshot_pages()` build ordinary in-memory graph indexes from bounded caller-captured Markdown. The additive API never discovers, reopens, or inspects logical source paths or its graph-root label; source capture, revisions, and external DTO projection remain outside Parser. |
19
+ | **Architecture** | Parser remains the deterministic Logseq OG library. Plumber is the sole cross-product gateway to Trama and Brain; existing Parser APIs and LENS behavior remain compatible. |
20
+ | **Dependency security** | A time-bounded, evidence-backed exception governs `PYSEC-2026-3740` for optional AI dependency NLTK until a patched registry release exists; all other dependency findings remain fail-closed. |
21
+
22
+ ## v1.8.2
23
+
24
+ Patch release — strengthens the hosted assurance boundary, clarifies
11
25
  integration guidance, and makes the graph loader easier to call. **No
12
- intentional breaking changes** to stable package imports or CLI behavior. The
13
- v1.8.2 tag, PyPI publication, GitHub Release, hashes, and attestations remain
14
- pending the release workflow.
26
+ intentional breaking changes** to stable package imports or CLI behavior.
15
27
 
16
28
  | Area | Change |
17
29
  | :--- | :--- |
@@ -2,13 +2,12 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- Security fixes are provided **only for the latest released version** on [PyPI](https://pypi.org/project/logseq-matryca-parser/). Until the v1.8.2 tag workflow completes, that version remains v1.8.1.
5
+ Security fixes are provided **only for the latest released version** on [PyPI](https://pypi.org/project/logseq-matryca-parser/). The latest supported release is v1.9.0.
6
6
 
7
7
  | Version | Supported |
8
8
  | ------- | --------- |
9
- | 1.8.2 (release candidate; not published) | Pending publication |
10
- | **1.8.1** (latest released) | Yes |
11
- | 1.8.0 and older | No |
9
+ | **1.9.0** (latest released) | Yes |
10
+ | 1.8.2 and older | No |
12
11
 
13
12
  We recommend always running the current release and upgrading promptly when a security advisory is published.
14
13
 
@@ -28,6 +28,22 @@ Full contributor contract: [`CLEAN_CODE_ARCHITECTURE.md`](CLEAN_CODE_ARCHITECTUR
28
28
 
29
29
  High-level data flow from sovereign graph files through deterministic parsing to AST-backed exporters and adapters.
30
30
 
31
+ ## Cross-repository boundary
32
+
33
+ For Logseq OG integration, Parser is the deterministic parsing stage in this
34
+ data flow:
35
+
36
+ ```text
37
+ Logseq OG -> Parser -> Plumber -> Trama/Brain
38
+ ```
39
+
40
+ Parser owns the typed AST, in-memory graph, and parser-native serialization.
41
+ Plumber owns source selection, host adapters, sessions, and public cross-product
42
+ contracts. The flow does not add Python imports: Parser runtime does not import
43
+ Plumber, Trama, or Brain, while Trama and Brain consume Plumber contracts and
44
+ do not import or know Parser. Details and compatibility consequences are in
45
+ [ADR-0004](decisions/ADR-0004-PARSER-PLUMBER-BOUNDARY.md).
46
+
31
47
  ```mermaid
32
48
  flowchart LR
33
49
  FS[(Local Logseq\nGraph .md)] --> Logos[LOGOS Engine\nParser]
@@ -308,6 +324,8 @@ When LENS receives a loaded **`LogseqGraph`**, wikilinks resolve through `get_pa
308
324
 
309
325
  Visualization export uses **`pyvis`** with **`force_atlas_2based`** physics, fullscreen canvas, HUD filters, glassmorphism control chrome, and stabilized layout configuration suitable for **large graphs at interactive frame rates** in the browser (product positioning targets fluid exploration of graphs on the order of **10⁴ nodes**).
310
326
 
327
+ LENS remains fully compatible as a Parser reference-topology tool. Trama owns future product-intelligence visualization. Any later migration must preserve compatibility through a separately reviewed deprecation plan. No migration, warning, removal, or changed command is part of this repository slice.
328
+
311
329
  ### 3.4 AGENT WRITER — Append-Only Sandboxing & Headless Splicer
312
330
 
313
331
  In the **LLM OS** metaphor, **LOGOS** is the **read path** into the hierarchical “disk”: it materializes Spatial Markdown into a **deterministic AST** that downstream adapters trust. **`agent_writer`** ([`logseq_matryca_parser.agent_writer`](../src/logseq_matryca_parser/agent_writer.py)) is the complementary **bounded write syscall** with two surfaces:
@@ -8,8 +8,8 @@ audience: contributors
8
8
  owner: logseq-matryca-parser
9
9
  authority: source_repository
10
10
  execution_mode: reviewed
11
- last_verified: 2026-08-30
12
- verified: 2026-08-30
11
+ last_verified: 2026-09-05
12
+ verified: 2026-09-05
13
13
  stale_after: 2027-02-26
14
14
  okf_profile: matryca_okf_inspired_quality
15
15
  okf_spec_version: null
@@ -19,7 +19,7 @@ superseded_by: null
19
19
 
20
20
  # Clean Code & Clean Architecture — Logseq Matryca Parser
21
21
 
22
- **Version:** documents **v1.8.2** maintainer contracts (v1 structural backlog complete; parser, graph-coherence, and local-assurance slices merged)
22
+ **Version:** documents **v1.9.0** maintainer contracts (v1 structural backlog complete; parser, graph-coherence, local-assurance, and stable snapshot-graph slices merged)
23
23
  **Audience:** contributors and Cursor agents patching `src/logseq_matryca_parser/`
24
24
  **Companion:** [`ARCHITECTURE.md`](ARCHITECTURE.md) (LOGOS domain contract) · [`BUG_HUNT_REPORT.md`](BUG_HUNT_REPORT.md) (audit evidence) · [`CONTRIBUTING.md`](../CONTRIBUTING.md)
25
25
 
@@ -27,7 +27,14 @@ This document applies **Robert C. Martin's** *Clean Architecture* (dependency ru
27
27
 
28
28
  **Adoption model:** **incremental v1**. A full hexagonal package split (`domain/ports.py`, separate driver packages) is **out of scope** for routine PRs. Uncle Bob here is a **quality contract**, not a mandate to rewrite the flat `src/logseq_matryca_parser/` layout in one change.
29
29
 
30
- **Downstream consumer:** [Matryca Plumber](https://github.com/MarcoPorcellato/matryca-plumber) depends on this library as the inner AST ring. Public APIs (`LogseqGraph`, `StackMachineParser`, `SynapseAdapter`, agent write helpers) must stay stable and framework-agnostic.
30
+ **Cross-repository boundary:** Parser owns deterministic OG parsing, typed ASTs,
31
+ the in-memory graph, and parser-native serialization. [Matryca
32
+ Plumber](https://github.com/MarcoPorcellato/matryca-plumber) may depend on it
33
+ as an internal OG parser and is the sole cross-product Logseq gateway to Trama
34
+ and Brain. Parser does not select sources, operate host adapters, or define
35
+ public `plumber.*` contracts. Public APIs (`LogseqGraph`, `StackMachineParser`,
36
+ `SynapseAdapter`, agent write helpers) stay stable and framework-agnostic; see
37
+ [ADR-0004](decisions/ADR-0004-PARSER-PLUMBER-BOUNDARY.md).
31
38
 
32
39
  ---
33
40
 
@@ -54,6 +61,10 @@ This document applies **Robert C. Martin's** *Clean Architecture* (dependency ru
54
61
  | **Adapters** | `synapse.py`, `forge.py`, `agent_writer.py`, `agent_press.py`, `lens.py` | Framework projections (LangChain, LlamaIndex, Obsidian, PyVis) |
55
62
  | **Drivers** | `kinetic.py`, `kinetic_commands.py`, `kinetic_export.py`, `__main__.py` | Operator CLI — orchestrates use cases and adapters |
56
63
 
64
+ Parser runtime modules must not import Plumber, Trama, or Brain. Trama and Brain
65
+ consume Plumber contracts and do not import or know Parser. This is a product
66
+ boundary, not a reason to move existing Parser APIs or LENS behavior in place.
67
+
57
68
  ```mermaid
58
69
  flowchart TB
59
70
  subgraph drivers [Drivers]
@@ -99,6 +110,7 @@ flowchart TB
99
110
  | Adapters must not import `kinetic` | same |
100
111
  | Import cycles between `src/` modules | `0` expected — verify via local graph study (`check` cycles) |
101
112
  | Adapters use **public** `LogseqGraph` APIs | Code review + audit SOP |
113
+ | Parser runtime does not import Plumber, Trama, or Brain | [`tests/test_layer_boundary.py`](../tests/test_layer_boundary.py) |
102
114
 
103
115
  ### v1 by design (do not "fix" without an epic)
104
116
 
@@ -137,7 +149,7 @@ make check
137
149
 
138
150
  | Area | Responsibility |
139
151
  |------|----------------|
140
- | Bulk load | `load_directory`, `_enrich_pages_index` |
152
+ | Bulk load | `load_directory`, `from_snapshot_pages`, `_enrich_pages_index` |
141
153
  | Incremental | `invalidate_and_reload_page`, watcher |
142
154
  | Coherence | Per-graph in-process coordinator shared by readers, writer splices, and watcher reloads |
143
155
  | Query | `GraphQuery`, `search_content`, backlinks |
@@ -159,6 +171,15 @@ pending timers, and waits for admitted routes to finish; callbacks stay FIFO,
159
171
  isolated, outside graph coordination, and use a separate bounded dispatcher
160
172
  close.
161
173
 
174
+ `SnapshotPage` plus `LogseqGraph.from_snapshot_pages()` is the additive
175
+ in-memory bulk-load boundary. It accepts caller-captured Markdown text and safe
176
+ graph-relative logical paths, parses only through `StackMachineParser.parse()`, and
177
+ then reuses the normal graph index builders. The factory neither discovers nor
178
+ reopens or inspects source paths or the graph-root label; those synthetic paths are
179
+ graph metadata only. Capture,
180
+ filesystem authority, revisions, and cross-product DTO projection remain outside
181
+ Parser.
182
+
162
183
  The private inventory and snapshot representations are implementation details,
163
184
  not stable public API.
164
185
 
@@ -173,6 +194,12 @@ not stable public API.
173
194
 
174
195
  **Rule:** no new parsing logic in KINETIC modules — call `LogseqGraph.load_directory` or `StackMachineParser`.
175
196
 
197
+ LENS remains a compatible optional Parser adapter. Stage 0 marks it
198
+ transitional and feature-frozen while preserving its commands and API without a
199
+ deprecation warning. A later, separately accepted Matryca Trama migration owns
200
+ user-facing graph-intelligence UI; removal or behavior change requires its own
201
+ compatibility decision.
202
+
176
203
  ### `synapse.py` + `synapse_embed.py` — SYNAPSE adapters
177
204
 
178
205
  | Area | Responsibility |
@@ -204,6 +204,13 @@ visualizer.export_html(output)
204
204
 
205
205
  `export_html()` writes the HTML file but does not open it automatically.
206
206
 
207
+ LENS is transitional and feature-frozen for this reference-topology workflow.
208
+ `GraphVisualizer`, this recipe, `matryca-parse visualize`, and
209
+ `matryca-parse demo` remain compatible and emit no deprecation warning in Stage
210
+ 0. Matryca Trama is the destination for future user-facing graph intelligence;
211
+ a separately reviewed migration must provide compatibility guidance before any
212
+ behavior change.
213
+
207
214
  ---
208
215
 
209
216
  ## Recipe 7 — Contributor test patterns
@@ -154,7 +154,7 @@ Run `make vendor-name-check` before docs PRs to ensure Ghost Tooling policy (no
154
154
  ## Out of scope for a first PR
155
155
 
156
156
  - Changes to Pydantic models in `logos_core.py` (open a design issue first).
157
- - Desktop GUI ([#3](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)) — multi-sprint epic.
157
+ - Trama graph-intelligence UI ([#3](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/3)) — cross-product work; Parser LENS remains compatible and no Parser GUI work belongs in a first PR.
158
158
  - Bulk mldoc parity work in `logos_parser.py` — high regression risk.
159
159
  - Obsidian namespace path alignment — cross-tool behavior, needs design.
160
160
 
@@ -65,6 +65,7 @@ entry points.
65
65
  | [`reference/CONFORMANCE_SUPPORT_MATRIX.md`](reference/CONFORMANCE_SUPPORT_MATRIX.md) | Integrators, contributors | Supported runtimes, public contract tiers, optional adapters, and deprecation rules |
66
66
  | [`reference/DEPENDENCY_LICENSE_POLICY.md`](reference/DEPENDENCY_LICENSE_POLICY.md) | Maintainers, release reviewers | Release SBOM, dependency/license inventory, checksum, override, and attestation contract |
67
67
  | [`security/DAILY_METRICS_THREAT_MODEL.md`](security/DAILY_METRICS_THREAT_MODEL.md) | Maintainers, security reviewers | Trust boundaries and fail-closed controls for the self-mutating metrics archive |
68
+ | [`security/DEPENDENCY_ADVISORY_EXCEPTIONS.md`](security/DEPENDENCY_ADVISORY_EXCEPTIONS.md) | Maintainers, security reviewers | Exact, time-bounded dependency advisory exceptions and compensating controls |
68
69
  | [`decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md`](decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md) | Maintainers, integrators | Decision to defer protocol endpoints until explicit safety and compatibility gates are met |
69
70
  | [`decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md`](decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md) | Maintainers, documentation reviewers | Decision to preserve the measured official OKF backlog until profile conflicts are resolved |
70
71
  | [`decisions/ADR-0003-AAIF-SUBMISSION-GATE.md`](decisions/ADR-0003-AAIF-SUBMISSION-GATE.md) | Maintainers, legal reviewers | Evidence-based NO-GO and reconsideration gate for any AAIF submission |
@@ -0,0 +1,81 @@
1
+ ---
2
+ type: ArchitectureDecision
3
+ title: ADR-0004 Parser and Plumber boundary
4
+ description: Decision that Parser remains a deterministic OG parsing library while Plumber owns the cross-product Logseq gateway.
5
+ status: stable
6
+ classification: active
7
+ audience: maintainers
8
+ owner: logseq-matryca-parser
9
+ authority: source_repository
10
+ execution_mode: reviewed
11
+ last_verified: 2026-09-05
12
+ verified: 2026-09-05
13
+ stale_after: 2027-03-04
14
+ okf_profile: matryca_okf_inspired_quality
15
+ okf_spec_version: null
16
+ supersedes: null
17
+ superseded_by: null
18
+ ---
19
+
20
+ # ADR-0004: Parser and Plumber boundary
21
+
22
+ ## Status
23
+
24
+ Accepted.
25
+
26
+ ## Context
27
+
28
+ Logseq Matryca Parser already provides deterministic parsing of Logseq OG
29
+ Markdown into a typed AST, an in-memory graph, and parser-native
30
+ serializations. Cross-product integration needs one gateway that can select a
31
+ source, own host adapters and session lifecycle, and publish stable contracts
32
+ to product consumers without making those consumers depend on Parser internals.
33
+
34
+ ## Decision
35
+
36
+ The supported OG data flow is:
37
+
38
+ ```text
39
+ Logseq OG -> Parser -> Plumber -> Trama/Brain
40
+ ```
41
+
42
+ Parser owns deterministic OG parsing, typed AST construction, its in-memory
43
+ graph, and parser-native serialization. It accepts caller-provided local
44
+ Markdown inputs, but does not choose a cross-product source, operate a Logseq
45
+ host adapter, own sessions, or define public `plumber.*` contracts.
46
+
47
+ Plumber owns source selection, Logseq host adapters, session lifecycle, and
48
+ versioned public contracts for downstream consumers. The data flow above is not
49
+ a Python dependency direction. The Parser runtime must not import Plumber, Trama, or Brain. Plumber may use Parser internally for an OG source.
50
+
51
+ Trama and Brain consume Plumber contracts. They must not import or know Parser,
52
+ and must not access Logseq OG files or a Logseq DB through a parallel gateway.
53
+
54
+ LENS remains compatible in this slice. Its current API, CLI command, optional
55
+ dependency, and behavior are unchanged. A later, separately reviewed migration
56
+ will move user-facing graph-intelligence visualization to Trama and may begin a
57
+ compatible LENS deprecation. This decision adds no warning, removal, command,
58
+ or API change.
59
+
60
+ Parser remains protocol-neutral under
61
+ [ADR-0001](ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md). This decision adds no MCP
62
+ server, network endpoint, GUI, release, or compatibility claim.
63
+
64
+ ## Consequences
65
+
66
+ - Parser remains independently useful to developer consumers that need only
67
+ deterministic Markdown parsing, an in-memory graph, CLI workflows, or
68
+ parser-native exports.
69
+ - Plumber is the only cross-product boundary between Logseq sources and Trama
70
+ or Brain.
71
+ - Existing Parser public APIs and LENS compatibility promises remain unchanged.
72
+ - Any future UI migration, host adapter, protocol, mutation, or release needs
73
+ its own accepted design and verification evidence.
74
+
75
+ ## Verification and rollback
76
+
77
+ `tests/test_plumber_boundary_docs.py` keeps this decision and the maintained
78
+ architecture guides explicit. `tests/test_layer_boundary.py` rejects Parser
79
+ runtime imports of Plumber, Trama, and Brain. Rollback requires a superseding
80
+ ADR and a separately reviewed compatibility plan; it does not authorize an
81
+ implicit import or product-surface change.
@@ -15,6 +15,7 @@ introduced incrementally. Do not rewrite historical roadmaps into ADRs.
15
15
  | Privacy-safe local graph assurance | [`ADR-002-local-graph-assurance-boundary.md`](ADR-002-local-graph-assurance-boundary.md) | Accepted M5 aggregate-only local CLI boundary; no content retention or network operation |
16
16
  | Documentation lifecycle and MKQ | [`DOCUMENTATION_SYSTEM.md`](../DOCUMENTATION_SYSTEM.md) | Source contract recorded; MKQ-4 enforcement and private profile activation pending under issue #109 |
17
17
  | Protocol adapter boundary | [`ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md`](ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md) | Accepted: keep the core protocol-neutral until explicit schema, safety, permissions, and conformance gates are met |
18
+ | Parser and Plumber boundary | [`ADR-0004-PARSER-PLUMBER-BOUNDARY.md`](ADR-0004-PARSER-PLUMBER-BOUNDARY.md) | Accepted: Parser owns deterministic OG parsing; Plumber is the sole cross-product Logseq gateway to Trama and Brain |
18
19
  | Official OKF v0.2 migration | [`ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md`](ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md) | Accepted: defer conformance while the measured 38-finding backlog and nested-index profile conflict remain |
19
20
  | AAIF submission | [`ADR-0003-AAIF-SUBMISSION-GATE.md`](ADR-0003-AAIF-SUBMISSION-GATE.md) | Accepted: NO-GO until governance, adoption, legal, live security, and release-evidence gates pass |
20
21
 
@@ -38,6 +38,7 @@ navigation layers only.
38
38
  | [Support and compatibility matrix](reference/CONFORMANCE_SUPPORT_MATRIX.md) | Supported runtimes, public API tiers, optional adapters, and explicit limits |
39
39
  | [Dependency, license, SBOM, and provenance policy](reference/DEPENDENCY_LICENSE_POLICY.md) | Release evidence, override, checksum, and attestation contract |
40
40
  | [Daily metrics threat model](security/DAILY_METRICS_THREAT_MODEL.md) | Security boundary for the self-mutating repository traffic archive |
41
+ | [Dependency advisory exceptions](security/DEPENDENCY_ADVISORY_EXCEPTIONS.md) | Exact, time-bounded security audit exceptions and compensating controls |
41
42
  | [Architecture](CLEAN_CODE_ARCHITECTURE.md) | Canonical architecture and public graph API |
42
43
  | [Stellar audit baseline](REPOSITORY_STELLAR_ROADMAP_2026-08-06.md) | Dated evidence-backed audit and original improvement sequence |
43
44
  | [GitHub and AAIF readiness study](REPOSITORY_GOVERNANCE_AAIF_STUDY_2026-08-19.md) | Governance, supply-chain, agent, and AAIF-readiness study |
@@ -19,6 +19,21 @@ superseded_by: null
19
19
 
20
20
  # Documentation evolution log
21
21
 
22
+ ## 2026-08-30 — v1.8.2 publication
23
+
24
+ - Published v1.8.2 from PR #198 merge SHA
25
+ `976d5413df27330226d9b3a65b005d129de236b0` at tag `v1.8.2`.
26
+ - Release workflow run [#33295184723](https://github.com/MarcoPorcellato/logseq-matryca-parser/actions/runs/33295184723) completed successfully, creating the [GitHub Release](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases/tag/v1.8.2) and [PyPI 1.8.2](https://pypi.org/project/logseq-matryca-parser/1.8.2/) publication.
27
+ - Downloaded release assets matched `SHA256SUMS`, and GitHub attestation
28
+ verification passed for every listed artifact against this repository:
29
+
30
+ | Artifact | SHA-256 | Attestation |
31
+ | --- | --- | --- |
32
+ | `logseq_matryca_parser-1.8.2-py3-none-any.whl` | `1b3deb43466c63c46ca3b11cd35a2b4436b0ba3528a5f82bcc52fd0a10cd4820` | Verified |
33
+ | `logseq_matryca_parser-1.8.2.tar.gz` | `aa9a15ab43c1197724550fde121023da52d4ade49f9886eaa0c48df04c37be08` | Verified |
34
+ | `SBOM.cdx.json` | `67802e45427a76f0de1bd9ce544eb5199ac48aa00611fca807b5d5fd01c131e0` | Verified |
35
+ | `DEPENDENCY_LICENSES.json` | `fb75132dd4562d8b25dd8dda45ef41ff0fe64a7966d6967cd859071802f20834` | Verified |
36
+
22
37
  ## 2026-08-30 — v1.8.2 release candidate
23
38
 
24
39
  - Prepared the v1.8.2 release candidate from
@@ -38,6 +38,7 @@ maintained_documents = [
38
38
  "docs/decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md",
39
39
  "docs/decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md",
40
40
  "docs/decisions/ADR-0003-AAIF-SUBMISSION-GATE.md",
41
+ "docs/decisions/ADR-0004-PARSER-PLUMBER-BOUNDARY.md",
41
42
  "docs/decisions/ADR-001-external-oracle-boundary.md",
42
43
  "docs/decisions/ADR-002-local-graph-assurance-boundary.md",
43
44
  "docs/reference/index.md",
@@ -48,6 +49,7 @@ maintained_documents = [
48
49
  "docs/reference/DIAGNOSTICS.md",
49
50
  "docs/reference/FILESYSTEM_SAFETY.md",
50
51
  "docs/security/DAILY_METRICS_THREAT_MODEL.md",
52
+ "docs/security/DEPENDENCY_ADVISORY_EXCEPTIONS.md",
51
53
  "docs/reference/LOCAL_GRAPH_ASSURANCE.md",
52
54
  "docs/reference/PERFORMANCE_EVIDENCE.md",
53
55
  "docs/rfc/SOURCE_LOCATION_RFC.md",
@@ -8,8 +8,8 @@ audience: contributors
8
8
  owner: logseq-matryca-parser
9
9
  authority: source_repository
10
10
  execution_mode: reviewed
11
- last_verified: 2026-08-07
12
- verified: 2026-08-07
11
+ last_verified: 2026-09-05
12
+ verified: 2026-09-05
13
13
  stale_after: 2027-02-03
14
14
  okf_profile: matryca_okf_inspired_quality
15
15
  okf_spec_version: null
@@ -40,7 +40,7 @@ minor release unless a security issue makes that unsafe.
40
40
  |---|---|
41
41
  | Version | `__version__` |
42
42
  | Parser | `StackMachineParser`, `LogosParser`, `LogseqPage`, `LogseqNode`, `LogosNode`, `ASTVisitor` |
43
- | Graph | `LogseqGraph` |
43
+ | Graph | `LogseqGraph`, `SnapshotPage` |
44
44
  | Diagnostics | `Diagnostic`, `DiagnosticCode`, `DiagnosticSeverity`, `collect_graph_diagnostics` |
45
45
  | Errors | `LogseqParserError`, `LogseqIndentationError`, `BlockReferenceError`, `PageTitleCollisionError`, `VaultWriteError` |
46
46
  | Writer preview | `WriteProposal` |
@@ -57,6 +57,19 @@ the loader normalizes a textual path with `Path(graph_path).expanduser().resolve
57
57
  Both strict modes are opt-in, preserving the
58
58
  permissive default.
59
59
 
60
+ `SnapshotPage(logical_path, text)` and
61
+ `LogseqGraph.from_snapshot_pages(graph_path, snapshot_pages, *, strict_refs=False,
62
+ strict_title_collisions=False)` are stable additive graph APIs. The factory accepts
63
+ either a mapping of graph-relative POSIX Markdown paths to already-captured text or
64
+ a sequence of `SnapshotPage` values. It normalizes and orders unique `pages/` and
65
+ `journals/` paths deterministically, accepts at most 1,024 pages and 16 MiB of UTF-8
66
+ text, parses with the existing in-memory parser, and reuses the ordinary graph index
67
+ builders and strict modes. It never discovers or reopens logical source paths.
68
+ Synthetic source paths on the resulting models are metadata for graph behavior, not
69
+ filesystem-read authority; capture, source selection, hashing, and revisions remain
70
+ the caller's responsibility. Its graph-root label is normalized lexically without
71
+ expanding, resolving, or inspecting the caller path.
72
+
60
73
  Diagnostic code compatibility, serialization, and path-safety rules are defined
61
74
  in the [structured diagnostics contract](DIAGNOSTICS.md).
62
75
  Vault-bound writer and asset-read guarantees are defined in the
@@ -78,6 +91,12 @@ The following integrations remain public but experimental:
78
91
  Everything not exported from `logseq_matryca_parser.__all__` is internal unless
79
92
  another maintained contract explicitly promotes it.
80
93
 
94
+ `GraphVisualizer` remains experimental, compatible, transitional, and
95
+ feature-frozen in this release line. Stage 0 changes no API and emits no
96
+ deprecation warning. Future user-facing graph intelligence belongs in Matryca
97
+ Trama; a compatible deprecation may begin only through a separately reviewed
98
+ decision, release notes, and migration guidance.
99
+
81
100
  ## Version source
82
101
 
83
102
  `src/logseq_matryca_parser/_version.py` is the single authoritative version