logseq-matryca-parser 1.8.1__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 (262) hide show
  1. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/dependabot.yml +4 -0
  2. logseq_matryca_parser-1.9.0/.github/workflows/ci.yml +154 -0
  3. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/workflows/daily-metrics.yml +4 -1
  4. logseq_matryca_parser-1.9.0/.github/workflows/dependency-hygiene.yml +37 -0
  5. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/workflows/dependency-review.yml +2 -1
  6. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/workflows/parser-adversarial.yml +6 -3
  7. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/workflows/pypi_publish.yml +35 -24
  8. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/workflows/scorecard.yml +3 -2
  9. logseq_matryca_parser-1.9.0/.github/workflows/workflow-analysis.yml +59 -0
  10. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.pre-commit-config.yaml +4 -0
  11. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/AGENTS.md +4 -2
  12. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/CHANGELOG.md +59 -0
  13. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/CONTRIBUTING.md +3 -2
  14. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/PKG-INFO +24 -4
  15. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/README.md +23 -3
  16. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/RELEASE_HIGHLIGHTS.md +27 -0
  17. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/SECURITY.md +3 -3
  18. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/ARCHITECTURE.md +18 -0
  19. logseq_matryca_parser-1.9.0/docs/CI_ASSURANCE.md +157 -0
  20. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/CLEAN_CODE_ARCHITECTURE.md +33 -6
  21. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/CODEQL.md +7 -0
  22. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/COOKBOOK.md +48 -1
  23. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/GOOD_FIRST_ISSUES.md +1 -1
  24. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/README.md +5 -3
  25. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/RELEASE_PROCESS.md +4 -0
  26. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/ROADMAP_2026-2027.md +20 -19
  27. logseq_matryca_parser-1.9.0/docs/decisions/ADR-0004-PARSER-PLUMBER-BOUNDARY.md +81 -0
  28. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/index.md +1 -0
  29. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/goals/LSDOC_PARSER_ASSURANCE_GOAL.md +22 -10
  30. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/index.md +5 -3
  31. logseq_matryca_parser-1.9.0/docs/internal/POST_V1_8_1_BACKLOG_EXECUTION_2026-08-25.md +391 -0
  32. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/log.md +83 -3
  33. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/maintained.toml +3 -0
  34. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/quality/README.md +4 -3
  35. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/API_STABILITY.md +25 -4
  36. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/index.md +1 -1
  37. logseq_matryca_parser-1.9.0/docs/security/DEPENDENCY_ADVISORY_EXCEPTIONS.md +76 -0
  38. logseq_matryca_parser-1.9.0/docs/superpowers/plans/2026-08-30-native-github-actions.md +307 -0
  39. logseq_matryca_parser-1.9.0/docs/superpowers/plans/2026-08-30-v1.8.2-repository-completion.md +324 -0
  40. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-backlog-reconciliation.md +36 -0
  41. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-baseline.md +44 -0
  42. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-final-audit.md +25 -0
  43. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-publication.md +29 -0
  44. logseq_matryca_parser-1.9.0/docs/superpowers/receipts/2026-08-30-v1.8.2-qualification.md +28 -0
  45. logseq_matryca_parser-1.9.0/docs/superpowers/specs/2026-08-30-native-github-actions-design.md +148 -0
  46. logseq_matryca_parser-1.9.0/docs/superpowers/specs/2026-08-30-v1.8.2-repository-completion-design.md +101 -0
  47. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/metrics/index.json +1 -1
  48. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/metrics/quarters/2026-Q3.json +5493 -2562
  49. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/pyproject.toml +6 -0
  50. logseq_matryca_parser-1.9.0/release-bundle/RELEASE_NOTES.md +31 -0
  51. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/__init__.py +2 -1
  52. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/_version.py +1 -1
  53. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/graph.py +207 -33
  54. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic_commands.py +4 -4
  55. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/local_graph_assurance.py +1 -1
  56. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/synapse.py +4 -3
  57. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_check_wheel_contract.py +1 -1
  58. logseq_matryca_parser-1.9.0/tests/test_dependency_advisory_exception.py +53 -0
  59. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_graph.py +17 -0
  60. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_kinetic.py +37 -1
  61. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_layer_boundary.py +16 -0
  62. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_lens.py +18 -0
  63. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_local_graph_assurance.py +31 -4
  64. logseq_matryca_parser-1.9.0/tests/test_module_entrypoint.py +17 -0
  65. logseq_matryca_parser-1.9.0/tests/test_plumber_boundary_docs.py +37 -0
  66. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_public_api_contract.py +25 -0
  67. logseq_matryca_parser-1.9.0/tests/test_quality_gate_contract.py +488 -0
  68. logseq_matryca_parser-1.9.0/tests/test_snapshot_graph.py +277 -0
  69. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_synapse.py +7 -3
  70. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_writer_security.py +4 -2
  71. logseq_matryca_parser-1.9.0/tests/typing_samples/public_api.py +21 -0
  72. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/uv.lock +6 -6
  73. logseq_matryca_parser-1.9.0/zizmor.yml +3 -0
  74. logseq_matryca_parser-1.8.1/.github/workflows/ci.yml +0 -80
  75. logseq_matryca_parser-1.8.1/release-bundle/RELEASE_NOTES.md +0 -55
  76. logseq_matryca_parser-1.8.1/tests/test_quality_gate_contract.py +0 -170
  77. logseq_matryca_parser-1.8.1/tests/typing_samples/public_api.py +0 -12
  78. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.cursorignore +0 -0
  79. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.cursorrules +0 -0
  80. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.gitattributes +0 -0
  81. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/CODEOWNERS +0 -0
  82. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/FUNDING.yml +0 -0
  83. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  84. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/clean_architecture.yml +0 -0
  85. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  86. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  87. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  88. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/clean_arch_issue_numbers.txt +0 -0
  89. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/copilot-instructions.md +0 -0
  90. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/dependency-license-overrides.toml +0 -0
  91. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/labels.yml +0 -0
  92. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/scripts/create_clean_arch_issues.sh +0 -0
  93. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.github/scripts/create_good_first_issues.sh +0 -0
  94. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.gitignore +0 -0
  95. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/.repomixignore +0 -0
  96. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/CITATION.cff +0 -0
  97. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/CLAUDE.md +0 -0
  98. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/CODE_OF_CONDUCT.md +0 -0
  99. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/GOVERNANCE.md +0 -0
  100. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/LICENSE +0 -0
  101. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/MAINTAINERS.md +0 -0
  102. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/Makefile +0 -0
  103. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/NOTICE +0 -0
  104. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/SUPPORT.md +0 -0
  105. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/claude-skill-logseq-read/SKILL.md +0 -0
  106. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/claude-skill-logseq-read/scripts/parse_logseq.py +0 -0
  107. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/AAIF_ALIGNMENT.md +0 -0
  108. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/AI_CONTRIBUTION_POLICY.md +0 -0
  109. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/BUG_HUNT_REPORT.md +0 -0
  110. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/DOCUMENTATION_SYSTEM.md +0 -0
  111. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/ISSUE_TRIAGE_POLICY.md +0 -0
  112. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/LSDOC_REFERENCE_STUDY_AND_EXECUTION_PLAN_2026-08-16.md +0 -0
  113. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/README_READABILITY_REPORT_2026-08-08.md +0 -0
  114. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_GOVERNANCE_AAIF_STUDY_2026-08-19.md +0 -0
  115. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_IMPROVEMENT_STUDY_2026-07-28.md +0 -0
  116. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/REPOSITORY_STELLAR_ROADMAP_2026-08-06.md +0 -0
  117. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md +0 -0
  118. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md +0 -0
  119. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-0003-AAIF-SUBMISSION-GATE.md +0 -0
  120. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-001-external-oracle-boundary.md +0 -0
  121. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/decisions/ADR-002-local-graph-assurance-boundary.md +0 -0
  122. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/ARCHITECTURE_BLUEPRINT.md +0 -0
  123. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/CODE_SCAFFOLD.md +0 -0
  124. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_ASSET_RESOLUTION_SPEC.md +0 -0
  125. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_DATASCRIPT_MAPPING.md +0 -0
  126. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/LOGSEQ_TEMPORAL_ONTOLOGY.md +0 -0
  127. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/OFFICIAL_MLDOC_SPECS.md +0 -0
  128. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/README.md +0 -0
  129. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/design-docs/REFERENCE_SPEC.md +0 -0
  130. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/error_log.md +0 -0
  131. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/internal/ASSURANCE_TERRA_HANDOFF_2026-08-21.md +0 -0
  132. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/internal/LOCAL_CODE_STUDY.md +0 -0
  133. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/internal/M1A_CORRECTIVE_HARDENING_RESTART_HANDOFF_2026-08-16.md +0 -0
  134. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/internal/M5_LOCAL_GRAPH_ASSURANCE_REVIEW_HANDOFF_2026-08-18.md +0 -0
  135. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/internal/STATIC_ANALYSIS_POLICY.md +0 -0
  136. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/logseq_ast_primer.md +0 -0
  137. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/quality/CLEAN_ARCH_BACKLOG.md +0 -0
  138. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/quality/GITHUB_CLEAN_ARCH_ROADMAP.md +0 -0
  139. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/quality/ISSUE_RECONCILIATION_2026-08-06.md +0 -0
  140. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/quality/ISSUE_TRIAGE_2026-07.md +0 -0
  141. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/AGENT_ACTION_CONTRACT.md +0 -0
  142. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/CONFORMANCE_SUPPORT_MATRIX.md +0 -0
  143. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/DEPENDENCY_LICENSE_POLICY.md +0 -0
  144. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/DIAGNOSTICS.md +0 -0
  145. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/FILESYSTEM_SAFETY.md +0 -0
  146. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/LOCAL_GRAPH_ASSURANCE.md +0 -0
  147. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/reference/PERFORMANCE_EVIDENCE.md +0 -0
  148. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/rfc/OLLAMA_RAG.md +0 -0
  149. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/rfc/SOURCE_LOCATION_RFC.md +0 -0
  150. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_AGENT_NATIVE_XRAY.md +0 -0
  151. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_CLI_HYDRATION_AND_ENRICHMENT.md +0 -0
  152. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_CONTEXT_SYNTHESIS_AND_SCOPING.md +0 -0
  153. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_EMBED_EXPANSION_AND_FLUENT_QUERIES.md +0 -0
  154. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_GRAPH_RAG_SEMANTICS.md +0 -0
  155. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_HEADLESS_WRITER.md +0 -0
  156. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_INCREMENTAL_WATCHER.md +0 -0
  157. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_INLINE_SHIELD_AND_NAMESPACES.md +0 -0
  158. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_OBSIDIAN_ADAPTER.md +0 -0
  159. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_ROBUSTNESS_AND_SOFT_BREAKS.md +0 -0
  160. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_TOML_FIX_AND_PYPI_DISTRIBUTION.md +0 -0
  161. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/roadmaps/ROADMAP_UUID_AND_GRAPH_SUPERPOWERS.md +0 -0
  162. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/security/DAILY_METRICS_THREAT_MODEL.md +0 -0
  163. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-20-parser-lexical-state.md +0 -0
  164. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-20-runtime-evidence-harness.md +0 -0
  165. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-21-graph-mutation-coherence.md +0 -0
  166. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-21-post-m9-reconciliation.md +0 -0
  167. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/plans/2026-08-24-local-assurance-coverage.md +0 -0
  168. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-20-parser-lexical-state-design.md +0 -0
  169. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-21-graph-mutation-coherence-design.md +0 -0
  170. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/docs/superpowers/specs/2026-08-24-meaningful-test-coverage-design.md +0 -0
  171. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/examples/demo_logseq_journal.md +0 -0
  172. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/examples/run_demo.py +0 -0
  173. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/examples/run_synapse_rag.py +0 -0
  174. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/legacy/local_digestor.py +0 -0
  175. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/lib/bindings/utils.js +0 -0
  176. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/lib/tom-select/tom-select.complete.min.js +0 -0
  177. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/lib/tom-select/tom-select.css +0 -0
  178. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/lib/vis-9.1.2/vis-network.css +0 -0
  179. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/lib/vis-9.1.2/vis-network.min.js +0 -0
  180. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/llms.txt +0 -0
  181. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/metrics/quarters/2026-Q2.json +0 -0
  182. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/repomix-output-parser.xml +0 -0
  183. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/__init__.py +0 -0
  184. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/archive_repository_metrics.py +0 -0
  185. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/check_documentation.py +0 -0
  186. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/check_release_contract.py +0 -0
  187. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/check_vendor_free_docs.sh +0 -0
  188. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/check_wheel_contract.py +0 -0
  189. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/debug_pre_release.py +0 -0
  190. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/extract_changelog.py +0 -0
  191. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/generate_supply_chain_evidence.py +0 -0
  192. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/scripts/update_compat_snapshots.py +0 -0
  193. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/.gitignore +0 -0
  194. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/NOTICE +0 -0
  195. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/__main__.py +0 -0
  196. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/_lexical_state.py +0 -0
  197. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/agent_press.py +0 -0
  198. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/agent_writer.py +0 -0
  199. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/diagnostics.py +0 -0
  200. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/exceptions.py +0 -0
  201. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/forge.py +0 -0
  202. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic.py +0 -0
  203. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/kinetic_export.py +0 -0
  204. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/lens.py +0 -0
  205. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logos_core.py +0 -0
  206. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logos_parser.py +0 -0
  207. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logseq_markdown.py +0 -0
  208. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/logseq_paths.py +0 -0
  209. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/py.typed +0 -0
  210. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/pyproject.toml +0 -0
  211. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/src/logseq_matryca_parser/synapse_embed.py +0 -0
  212. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/__init__.py +0 -0
  213. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/deep-refresh-regression.md +0 -0
  214. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/hierarchy-identity.md +0 -0
  215. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/manifest.json +0 -0
  216. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/pages/nested-title-entrypoint.md +0 -0
  217. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/properties-and-links.md +0 -0
  218. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-deep-refresh.exact.json +0 -0
  219. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-hierarchy-identity.exact.json +0 -0
  220. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-nested-entrypoint.exact.json +0 -0
  221. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-properties-links-assets.exact.json +0 -0
  222. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-softbreak-logbook.exact.json +0 -0
  223. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/snapshots/m1a-task-timing.exact.json +0 -0
  224. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/soft-breaks-properties-logbook.md +0 -0
  225. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/fixtures/compat/v1/tasks-priority-time.md +0 -0
  226. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/__init__.py +0 -0
  227. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/adversarial.py +0 -0
  228. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/corpus.py +0 -0
  229. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/invariants.py +0 -0
  230. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/projection.py +0 -0
  231. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/parser_assurance/work_growth.py +0 -0
  232. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/performance/__init__.py +0 -0
  233. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/performance/runtime_evidence.py +0 -0
  234. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/performance/synthetic_vault.py +0 -0
  235. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_agent_press.py +0 -0
  236. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_agent_writer.py +0 -0
  237. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_archive_repository_metrics.py +0 -0
  238. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_check_documentation.py +0 -0
  239. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_check_release_contract.py +0 -0
  240. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_compat_corpus.py +0 -0
  241. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_demo_example.py +0 -0
  242. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_diagnostics.py +0 -0
  243. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_exceptions.py +0 -0
  244. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_extract_changelog.py +0 -0
  245. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_forge.py +0 -0
  246. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_generate_supply_chain_evidence.py +0 -0
  247. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_graph_collisions.py +0 -0
  248. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_graph_concurrency.py +0 -0
  249. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_llms_txt_contract.py +0 -0
  250. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_logos_parser.py +0 -0
  251. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_logseq_markdown.py +0 -0
  252. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_logseq_paths.py +0 -0
  253. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_package_version.py +0 -0
  254. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_parser_adversarial.py +0 -0
  255. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_parser_deep_refresh.py +0 -0
  256. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_parser_lexical_state.py +0 -0
  257. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_parser_work_growth.py +0 -0
  258. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_performance_evidence_docs.py +0 -0
  259. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_performance_synthetic_vault.py +0 -0
  260. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_pre_release_roundtrip.py +0 -0
  261. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_runtime_evidence.py +0 -0
  262. {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.9.0}/tests/test_synapse_example.py +0 -0
@@ -5,9 +5,13 @@ updates:
5
5
  directory: "/"
6
6
  schedule:
7
7
  interval: "weekly"
8
+ cooldown:
9
+ default-days: 7
8
10
 
9
11
  # Keep GitHub Actions current (reads .github/workflows/ci.yml).
10
12
  - package-ecosystem: "github-actions"
11
13
  directory: "/"
12
14
  schedule:
13
15
  interval: "weekly"
16
+ cooldown:
17
+ default-days: 7
@@ -0,0 +1,154 @@
1
+ name: Logos Protocol CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ quality:
18
+ name: Quality (Python 3.12)
19
+ runs-on: ubuntu-24.04
20
+ timeout-minutes: 15
21
+ steps:
22
+ - name: Checkout without credentials
23
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
24
+ with:
25
+ persist-credentials: false
26
+
27
+ - name: Install pinned uv
28
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
29
+ with:
30
+ version: "0.11.7"
31
+ python-version: "3.12"
32
+ enable-cache: true
33
+
34
+ - name: Sync locked dependencies
35
+ run: uv sync --locked --all-extras
36
+
37
+ - name: Lint
38
+ run: make lint
39
+
40
+ - name: Type check
41
+ run: make check
42
+
43
+ - name: Validate repository policy
44
+ run: make vendor-name-check
45
+
46
+ - name: Validate documentation
47
+ run: make docs-check
48
+
49
+ - name: Verify checkout unchanged
50
+ run: make verify-clean
51
+
52
+ tests:
53
+ name: Tests (${{ matrix.os }}, Python ${{ matrix.python-version }})
54
+ runs-on: ${{ matrix.os }}
55
+ timeout-minutes: 20
56
+ strategy:
57
+ fail-fast: false
58
+ matrix:
59
+ os: [ubuntu-24.04, macos-15, windows-2025]
60
+ python-version: ["3.12", "3.13"]
61
+ steps:
62
+ - name: Checkout without credentials
63
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
64
+ with:
65
+ persist-credentials: false
66
+
67
+ - name: Install pinned uv
68
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
69
+ with:
70
+ version: "0.11.7"
71
+ python-version: ${{ matrix.python-version }}
72
+ enable-cache: true
73
+
74
+ - name: Sync locked dependencies
75
+ run: uv sync --locked --all-extras
76
+
77
+ - name: Run complete test suite
78
+ run: >-
79
+ uv run pytest
80
+ --cov=src/logseq_matryca_parser
81
+ --cov-report=term-missing
82
+ --cov-fail-under=80
83
+ -v tests/
84
+
85
+ dependency-audit:
86
+ name: Production dependency audit
87
+ runs-on: ubuntu-24.04
88
+ timeout-minutes: 10
89
+ steps:
90
+ - name: Checkout without credentials
91
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
92
+ with:
93
+ persist-credentials: false
94
+
95
+ - name: Install pinned uv
96
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
97
+ with:
98
+ version: "0.11.7"
99
+ python-version: "3.12"
100
+ enable-cache: true
101
+
102
+ - name: Sync locked dependencies
103
+ run: uv sync --locked --all-extras
104
+
105
+ - name: Export every production dependency
106
+ run: >-
107
+ uv export
108
+ --all-extras
109
+ --no-dev
110
+ --no-emit-workspace
111
+ --output-file "${{ runner.temp }}/requirements-audit.txt"
112
+
113
+ - name: Audit exported dependencies
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"
119
+
120
+ package-contract:
121
+ name: Wheel and source distribution contract
122
+ runs-on: ubuntu-24.04
123
+ timeout-minutes: 10
124
+ steps:
125
+ - name: Checkout without credentials
126
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
127
+ with:
128
+ persist-credentials: false
129
+
130
+ - name: Install pinned uv
131
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
132
+ with:
133
+ version: "0.11.7"
134
+ python-version: "3.12"
135
+ enable-cache: true
136
+
137
+ - name: Sync locked dependencies
138
+ run: uv sync --locked --all-extras
139
+
140
+ - name: Build wheel and source distribution
141
+ run: uv build --out-dir dist-contract
142
+
143
+ - name: Verify wheel metadata and PEP 561 marker
144
+ run: uv run python scripts/check_wheel_contract.py dist-contract/*.whl
145
+
146
+ - name: Validate distribution metadata
147
+ run: uvx --from twine==6.2.0 twine check dist-contract/*
148
+
149
+ - name: Verify downstream typing from the wheel
150
+ run: |
151
+ uv venv "${{ runner.temp }}/typing-venv"
152
+ uv pip install --python "${{ runner.temp }}/typing-venv/bin/python" mypy==1.20.2 dist-contract/*.whl
153
+ cd "${{ runner.temp }}"
154
+ "${{ runner.temp }}/typing-venv/bin/python" -m mypy --strict "${{ github.workspace }}/tests/typing_samples/public_api.py"
@@ -19,16 +19,19 @@ env:
19
19
  jobs:
20
20
  save-metrics:
21
21
  if: github.ref == 'refs/heads/main'
22
- runs-on: ubuntu-latest
22
+ runs-on: ubuntu-24.04
23
+ timeout-minutes: 10
23
24
  permissions:
24
25
  contents: write
25
26
  steps:
26
27
  - name: Checkout trusted default branch
28
+ # zizmor: ignore[artipacked] -- this trusted main-only job must push metrics.
27
29
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
28
30
  with:
29
31
  ref: main
30
32
  fetch-depth: 0
31
33
  token: ${{ github.token }}
34
+ persist-credentials: true
32
35
 
33
36
  - name: Set up Python
34
37
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
@@ -0,0 +1,37 @@
1
+ name: Dependency Hygiene Audit
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "23 4 1 * *"
6
+ workflow_dispatch:
7
+
8
+ concurrency:
9
+ group: dependency-hygiene-${{ github.repository }}
10
+ cancel-in-progress: false
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ deptry:
17
+ name: Check dependency declarations
18
+ runs-on: ubuntu-24.04
19
+ timeout-minutes: 5
20
+ steps:
21
+ - name: Checkout without credentials
22
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23
+ with:
24
+ persist-credentials: false
25
+
26
+ - name: Install pinned uv without a shared cache
27
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
28
+ with:
29
+ version: "0.11.7"
30
+ python-version: "3.12"
31
+ enable-cache: false
32
+
33
+ - name: Sync locked project environment
34
+ run: uv sync --locked --all-extras
35
+
36
+ - name: Check dependency declarations
37
+ run: uv run --with deptry==0.25.1 deptry . --github-output
@@ -13,7 +13,8 @@ concurrency:
13
13
  jobs:
14
14
  dependency-review:
15
15
  name: Block newly introduced vulnerable dependencies
16
- runs-on: ubuntu-latest
16
+ runs-on: ubuntu-24.04
17
+ timeout-minutes: 10
17
18
  steps:
18
19
  - name: Checkout dependency manifests
19
20
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -14,21 +14,24 @@ permissions:
14
14
 
15
15
  jobs:
16
16
  bounded-generated-assurance:
17
- runs-on: ubuntu-latest
17
+ runs-on: ubuntu-24.04
18
18
  timeout-minutes: 10
19
19
 
20
20
  steps:
21
21
  - name: Checkout code
22
22
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23
+ with:
24
+ persist-credentials: false
23
25
 
24
26
  - name: Install uv
25
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
27
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
26
28
  with:
29
+ version: "0.11.7"
27
30
  python-version: "3.12"
28
31
  enable-cache: true
29
32
 
30
33
  - name: Sync dependencies
31
- run: uv sync --all-extras
34
+ run: uv sync --locked --all-extras
32
35
 
33
36
  - name: Run bounded broad profile
34
37
  run: uv run python -m tests.parser_assurance.adversarial --profile broad
@@ -15,7 +15,8 @@ permissions:
15
15
  jobs:
16
16
  pre-flight:
17
17
  name: Pre-flight checks (Python ${{ matrix.python-version }})
18
- runs-on: ubuntu-latest
18
+ runs-on: ubuntu-24.04
19
+ timeout-minutes: 20
19
20
  strategy:
20
21
  fail-fast: false
21
22
  matrix:
@@ -23,21 +24,26 @@ jobs:
23
24
  steps:
24
25
  - name: Checkout exact tag
25
26
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
27
+ with:
28
+ persist-credentials: false
26
29
 
27
30
  - name: Install uv
28
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
31
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
29
32
  with:
30
33
  version: "0.11.7"
31
34
  python-version: ${{ matrix.python-version }}
32
- enable-cache: true
35
+ enable-cache: false
33
36
 
34
37
  - name: Sync locked dependencies
35
38
  run: uv sync --locked --all-extras
36
39
 
37
40
  - name: Audit production dependencies
38
41
  run: |
39
- uv export --no-dev --no-emit-workspace --no-hashes -o "${{ runner.temp }}/requirements-audit.txt"
40
- uv run pip-audit -r "${{ runner.temp }}/requirements-audit.txt"
42
+ uv export --all-extras --no-dev --no-emit-workspace -o "${{ 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"
41
47
 
42
48
  - name: Run full quality gate
43
49
  run: make all
@@ -48,7 +54,8 @@ jobs:
48
54
  build:
49
55
  name: Build immutable release bundle
50
56
  needs: pre-flight
51
- runs-on: ubuntu-latest
57
+ runs-on: ubuntu-24.04
58
+ timeout-minutes: 15
52
59
  permissions:
53
60
  contents: read
54
61
  id-token: write
@@ -58,13 +65,14 @@ jobs:
58
65
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
59
66
  with:
60
67
  fetch-depth: 0
68
+ persist-credentials: false
61
69
 
62
70
  - name: Install uv
63
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
71
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
64
72
  with:
65
73
  version: "0.11.7"
66
74
  python-version: "3.12"
67
- enable-cache: true
75
+ enable-cache: false
68
76
 
69
77
  - name: Sync locked dependencies
70
78
  run: uv sync --locked --all-extras
@@ -115,7 +123,7 @@ jobs:
115
123
  | sha256sum --check -
116
124
 
117
125
  - name: Attest release artifact provenance
118
- uses: actions/attest@508db95dd578ae2727ebd6217d5ba78e4fbda05d # v4.2.1
126
+ uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
119
127
  with:
120
128
  subject-path: |
121
129
  release-bundle/dist/*
@@ -124,7 +132,7 @@ jobs:
124
132
  release-bundle/SHA256SUMS
125
133
 
126
134
  - name: Bind the production SBOM to the distributions
127
- uses: actions/attest@508db95dd578ae2727ebd6217d5ba78e4fbda05d # v4.2.1
135
+ uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
128
136
  with:
129
137
  subject-path: release-bundle/dist/*
130
138
  sbom-path: release-bundle/SBOM.cdx.json
@@ -154,7 +162,8 @@ jobs:
154
162
  publish:
155
163
  name: Publish exact distributions to PyPI
156
164
  needs: build
157
- runs-on: ubuntu-latest
165
+ runs-on: ubuntu-24.04
166
+ timeout-minutes: 10
158
167
  environment:
159
168
  name: pypi
160
169
  url: https://pypi.org/p/logseq-matryca-parser
@@ -182,7 +191,8 @@ jobs:
182
191
  github-release:
183
192
  name: Publish GitHub Release from exact distributions
184
193
  needs: publish
185
- runs-on: ubuntu-latest
194
+ runs-on: ubuntu-24.04
195
+ timeout-minutes: 10
186
196
  permissions:
187
197
  contents: write
188
198
  steps:
@@ -199,15 +209,16 @@ jobs:
199
209
  | sha256sum --check -
200
210
 
201
211
  - name: Create GitHub Release with verified artifacts
202
- uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
203
- with:
204
- tag_name: ${{ github.ref_name }}
205
- name: ${{ github.ref_name }}
206
- body_path: release-bundle/RELEASE_NOTES.md
207
- files: |
208
- release-bundle/dist/*
209
- release-bundle/SBOM.cdx.json
210
- release-bundle/DEPENDENCY_LICENSES.json
211
- release-bundle/SHA256SUMS
212
- generate_release_notes: false
213
- make_latest: true
212
+ env:
213
+ GH_TOKEN: ${{ github.token }}
214
+ run: |
215
+ gh release create "$GITHUB_REF_NAME" \
216
+ release-bundle/dist/* \
217
+ release-bundle/SBOM.cdx.json \
218
+ release-bundle/DEPENDENCY_LICENSES.json \
219
+ release-bundle/SHA256SUMS \
220
+ --repo "$GITHUB_REPOSITORY" \
221
+ --verify-tag \
222
+ --title "$GITHUB_REF_NAME" \
223
+ --notes-file release-bundle/RELEASE_NOTES.md \
224
+ --latest
@@ -11,7 +11,8 @@ permissions: read-all
11
11
  jobs:
12
12
  analysis:
13
13
  name: Scorecard analysis
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
+ timeout-minutes: 10
15
16
  permissions:
16
17
  contents: read
17
18
  security-events: write
@@ -38,6 +39,6 @@ jobs:
38
39
  if-no-files-found: error
39
40
 
40
41
  - name: Publish findings to code scanning
41
- uses: github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
42
+ uses: github/codeql-action/upload-sarif@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4.37.8
42
43
  with:
43
44
  sarif_file: results.sarif
@@ -0,0 +1,59 @@
1
+ name: Workflow Static Analysis
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ paths:
7
+ - ".github/workflows/**"
8
+ - ".github/dependabot.yml"
9
+ - ".pre-commit-config.yaml"
10
+ - "zizmor.yml"
11
+ pull_request:
12
+ paths:
13
+ - ".github/workflows/**"
14
+ - ".github/dependabot.yml"
15
+ - ".pre-commit-config.yaml"
16
+ - "zizmor.yml"
17
+ workflow_dispatch:
18
+
19
+ concurrency:
20
+ group: ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress: true
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ jobs:
27
+ workflow-analysis:
28
+ name: Validate workflow semantics and security
29
+ runs-on: ubuntu-24.04
30
+ timeout-minutes: 5
31
+ steps:
32
+ - name: Checkout without credentials
33
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
34
+ with:
35
+ persist-credentials: false
36
+
37
+ - name: Install pinned uv without a shared cache
38
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
39
+ with:
40
+ version: "0.11.7"
41
+ python-version: "3.12"
42
+ enable-cache: false
43
+
44
+ - name: Install checksum-verified actionlint 1.7.12
45
+ run: |
46
+ archive="${RUNNER_TEMP}/actionlint_1.7.12_linux_amd64.tar.gz"
47
+ curl --proto '=https' --tlsv1.2 --fail --location --silent --show-error \
48
+ --output "$archive" \
49
+ https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz
50
+ echo "8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8 $archive" \
51
+ | sha256sum --check --strict
52
+ tar --extract --gzip --file "$archive" --directory "$RUNNER_TEMP" actionlint
53
+
54
+ - name: Validate workflow semantics
55
+ run: |
56
+ "$RUNNER_TEMP/actionlint" -color
57
+
58
+ - name: Audit workflow security
59
+ run: uvx --from zizmor==1.29.0 zizmor --strict-collection --format=github .
@@ -1,4 +1,8 @@
1
1
  repos:
2
+ - repo: https://github.com/rhysd/actionlint
3
+ rev: 914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12
4
+ hooks:
5
+ - id: actionlint
2
6
  - repo: https://github.com/astral-sh/ruff-pre-commit
3
7
  rev: v0.15.12
4
8
  hooks:
@@ -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
@@ -31,6 +31,8 @@ backlinks, exports, visualizations, and AI chunks are derived views.
31
31
  [`docs/reference/API_STABILITY.md`](docs/reference/API_STABILITY.md).
32
32
  - For architecture and ownership boundaries, use
33
33
  [`docs/CLEAN_CODE_ARCHITECTURE.md`](docs/CLEAN_CODE_ARCHITECTURE.md).
34
+ - For pull-request, scheduled, settings-managed, and release checks, use
35
+ [`docs/CI_ASSURANCE.md`](docs/CI_ASSURANCE.md).
34
36
  - For the maintained machine-readable knowledge map, use
35
37
  [`docs/index.md`](docs/index.md).
36
38
  - For historical release capabilities, use
@@ -66,7 +68,7 @@ Protocol integrations remain optional and deferred under
66
68
  ## Repository working contract
67
69
 
68
70
  ```bash
69
- uv sync --all-extras
71
+ uv sync --locked --all-extras
70
72
  make all
71
73
  make vendor-name-check
72
74
  ```
@@ -7,6 +7,65 @@ 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
+
42
+ ## [1.8.2] - 2026-08-30
43
+
44
+ ### Changed
45
+
46
+ - **Native cross-platform GitHub assurance** — replace the public-repository
47
+ receipt-routing experiment with SHA-pinned GitHub-hosted quality, packaging,
48
+ dependency, CodeQL, Linux, macOS, and Windows checks. Local maintainer
49
+ guidance now treats hosted Actions as the authoritative public CI path (#194).
50
+ - **Cookbook guidance** — add corrected broken-block-reference and LENS
51
+ visualization recipes, including their CLI outcome and optional dependency
52
+ boundaries (#195).
53
+ - **Graph loader path-type acceptance** — `LogseqGraph.load_directory` accepts
54
+ `graph_path` as either `Path` or `str`, normalizes with
55
+ `Path(graph_path).expanduser().resolve()`, and preserves strict-mode defaults
56
+ (#197).
57
+
58
+ ### Fixed
59
+
60
+ - **Windows assurance portability** — open local-assurance inputs in binary
61
+ mode so CRLF files retain their measured byte length, use platform-neutral
62
+ byte and path fixtures, preserve POSIX permission assertions only where the
63
+ operating system provides those semantics, and fold CLI diagnostic
64
+ identifiers instead of replacing their final characters with an ellipsis
65
+ (#194).
66
+ - **Optional AI dependency guidance** — use one consistent message when AI
67
+ export dependencies are unavailable: `uv sync --extra ai` (#196).
68
+
10
69
  ## [1.8.1] - 2026-08-25
11
70
 
12
71
  ### Security
@@ -17,8 +17,9 @@ 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) — shipped releases (current: **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
+ - [`docs/CI_ASSURANCE.md`](docs/CI_ASSURANCE.md) — pull-request, scheduled, settings-managed, and release checks
22
23
  - [`docs/CODEQL.md`](docs/CODEQL.md) — CodeQL default setup (no custom `codeql.yml`)
23
24
  - [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md) — curated starter tasks for new contributors
24
25
  - [`docs/COOKBOOK.md`](docs/COOKBOOK.md) — integration recipes (Synapse, graph query, watcher)
@@ -80,7 +81,7 @@ New to the codebase? Start here:
80
81
 
81
82
  1. **Pick a task** from [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md) (label: `good first issue` on GitHub).
82
83
  2. **Comment on the issue** so others know you are working on it.
83
- 3. **Set up** with `uv sync --all-extras` and confirm `make all` is green on `main`.
84
+ 3. **Set up** with `uv sync --locked --all-extras` and confirm `make all` is green on `main`.
84
85
  4. **Branch** using `feat/…`, `test/…`, or `docs/…` naming (see workflow below).
85
86
  5. **Submit** one PR per issue, branched from `main` (`Fixes #123`).
86
87