logseq-matryca-parser 1.7.0__tar.gz → 1.7.1__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.
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/CHANGELOG.md +37 -1
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/PKG-INFO +18 -3
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/README.md +17 -2
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/SECURITY.md +2 -2
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/ARCHITECTURE.md +1 -1
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/CLEAN_CODE_ARCHITECTURE.md +1 -1
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/COOKBOOK.md +8 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/RELEASE_PROCESS.md +25 -3
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/REPOSITORY_STELLAR_ROADMAP_2026-08-06.md +84 -12
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/log.md +32 -3
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/quality/ISSUE_RECONCILIATION_2026-08-06.md +32 -10
- logseq_matryca_parser-1.7.1/examples/run_synapse_rag.py +78 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/metrics/index.json +1 -1
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/metrics/quarters/2026-Q3.json +175 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/pyproject.toml +2 -1
- logseq_matryca_parser-1.7.1/release-bundle/RELEASE_NOTES.md +28 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/check_release_contract.py +32 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/_version.py +1 -1
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_check_release_contract.py +45 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_check_wheel_contract.py +1 -1
- logseq_matryca_parser-1.7.1/tests/test_synapse_example.py +42 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/uv.lock +92 -89
- logseq_matryca_parser-1.7.0/release-bundle/RELEASE_NOTES.md +0 -62
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.cursorignore +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.cursorrules +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/CODEOWNERS +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/FUNDING.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/ISSUE_TEMPLATE/clean_architecture.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/clean_arch_issue_numbers.txt +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/dependabot.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/labels.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/scripts/create_clean_arch_issues.sh +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/scripts/create_good_first_issues.sh +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/workflows/ci.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/workflows/daily-metrics.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.github/workflows/pypi_publish.yml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.gitignore +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.pre-commit-config.yaml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/.repomixignore +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/AGENTS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/CLAUDE.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/CODE_OF_CONDUCT.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/CONTRIBUTING.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/LICENSE +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/Makefile +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/NOTICE +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/claude-skill-logseq-read/SKILL.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/claude-skill-logseq-read/scripts/parse_logseq.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/BUG_HUNT_REPORT.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/CODEQL.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/DOCUMENTATION_SYSTEM.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/GOOD_FIRST_ISSUES.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/README.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/REPOSITORY_IMPROVEMENT_STUDY_2026-07-28.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/decisions/index.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/ARCHITECTURE_BLUEPRINT.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/CODE_SCAFFOLD.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/LOGSEQ_ASSET_RESOLUTION_SPEC.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/LOGSEQ_DATASCRIPT_MAPPING.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/LOGSEQ_TEMPORAL_ONTOLOGY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/OFFICIAL_MLDOC_SPECS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/README.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/design-docs/REFERENCE_SPEC.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/error_log.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/index.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/internal/LOCAL_CODE_STUDY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/internal/STATIC_ANALYSIS_POLICY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/logseq_ast_primer.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/maintained.toml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/quality/CLEAN_ARCH_BACKLOG.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/quality/GITHUB_CLEAN_ARCH_ROADMAP.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/quality/ISSUE_TRIAGE_2026-07.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/quality/README.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/reference/API_STABILITY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/reference/DIAGNOSTICS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/reference/FILESYSTEM_SAFETY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/reference/index.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/rfc/OLLAMA_RAG.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_AGENT_NATIVE_XRAY.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_CLI_HYDRATION_AND_ENRICHMENT.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_CONTEXT_SYNTHESIS_AND_SCOPING.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_EMBED_EXPANSION_AND_FLUENT_QUERIES.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_GRAPH_RAG_SEMANTICS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_HEADLESS_WRITER.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_INCREMENTAL_WATCHER.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_INLINE_SHIELD_AND_NAMESPACES.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_OBSIDIAN_ADAPTER.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_ROBUSTNESS_AND_SOFT_BREAKS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_TOML_FIX_AND_PYPI_DISTRIBUTION.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/docs/roadmaps/ROADMAP_UUID_AND_GRAPH_SUPERPOWERS.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/examples/demo_logseq_journal.md +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/examples/run_demo.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/legacy/local_digestor.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/lib/bindings/utils.js +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/lib/tom-select/tom-select.complete.min.js +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/lib/tom-select/tom-select.css +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/lib/vis-9.1.2/vis-network.css +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/lib/vis-9.1.2/vis-network.min.js +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/metrics/quarters/2026-Q2.json +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/repomix-output-parser.xml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/__init__.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/check_documentation.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/check_vendor_free_docs.sh +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/check_wheel_contract.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/debug_pre_release.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/scripts/extract_changelog.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/.gitignore +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/NOTICE +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/__init__.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/__main__.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/agent_press.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/agent_writer.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/diagnostics.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/exceptions.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/forge.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/graph.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/kinetic.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/kinetic_commands.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/kinetic_export.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/lens.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/logos_core.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/logos_parser.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/logseq_paths.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/py.typed +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/pyproject.toml +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/synapse.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/src/logseq_matryca_parser/synapse_embed.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_agent_press.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_agent_writer.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_check_documentation.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_diagnostics.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_exceptions.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_extract_changelog.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_forge.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_graph.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_graph_collisions.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_kinetic.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_layer_boundary.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_lens.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_logos_parser.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_logseq_paths.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_package_version.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_parser_deep_refresh.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_pre_release_roundtrip.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_public_api_contract.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_quality_gate_contract.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_synapse.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/test_writer_security.py +0 -0
- {logseq_matryca_parser-1.7.0 → logseq_matryca_parser-1.7.1}/tests/typing_samples/public_api.py +0 -0
|
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.7.1] - 2026-08-08
|
|
11
|
+
|
|
12
|
+
Patch release correcting the v1.7.0 SYNAPSE example promise, hardening release
|
|
13
|
+
notes validation, and refreshing vulnerable optional-development dependencies.
|
|
14
|
+
**No intentional breaking changes** to package APIs or CLI behavior.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Runnable SYNAPSE RAG example** —
|
|
19
|
+
[`examples/run_synapse_rag.py`](examples/run_synapse_rag.py) exercises the
|
|
20
|
+
LangChain, LlamaIndex, and context-enriched conversion paths against an
|
|
21
|
+
offline temporary Logseq graph, including verified expansion of a resolved
|
|
22
|
+
page embed ([#90](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/90)).
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **Release contract** — release-note validation now rejects missing or
|
|
27
|
+
repository-escaping local Markdown links, preventing a tag from promising an
|
|
28
|
+
artifact that is not present in its source tree.
|
|
29
|
+
- **Release documentation** — the v1.7.0 record and public release notes carry
|
|
30
|
+
a dated erratum for the omitted SYNAPSE example while preserving the
|
|
31
|
+
immutable v1.7.0 tag, artifacts, attestations, and checksums.
|
|
32
|
+
|
|
33
|
+
### Security
|
|
34
|
+
|
|
35
|
+
- **Optional AI/development lock** — constrained `aiohttp>=3.14.3` and
|
|
36
|
+
`setuptools>=83.0.0`, resolving the four Dependabot advisories open against
|
|
37
|
+
the v1.7.0 lock. Neither dependency is part of the base package runtime.
|
|
38
|
+
|
|
10
39
|
## [1.7.0] - 2026-08-08
|
|
11
40
|
|
|
12
41
|
Minor release — structured diagnostics, deterministic title-collision handling,
|
|
@@ -35,7 +64,6 @@ to stable package exports or default CLI behavior.
|
|
|
35
64
|
renders all findings with `scan --diagnostics`
|
|
36
65
|
([#102](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/102)).
|
|
37
66
|
- **Documentation system guide** — [`docs/DOCUMENTATION_SYSTEM.md`](docs/DOCUMENTATION_SYSTEM.md) explains source authority, maintained versus historical surfaces, metadata, freshness, validation, the Matryca Knowledge projection workflow, and the repository's documentation evolution.
|
|
38
|
-
- **Synapse RAG example** — [`examples/run_synapse_rag.py`](examples/run_synapse_rag.py) demonstrates all four `SynapseAdapter` methods (`to_langchain_documents`, `to_llamaindex_nodes`, `to_context_enriched_chunks`, `_expand_macros_and_embeds`) plus table-driven embed expansion edge cases.
|
|
39
67
|
- **Embed expansion edge-case tests** — `TestEmbedExpansionEdgeCases` in [`tests/test_synapse.py`](tests/test_synapse.py) covers cycles, missing targets, and happy-path for both `{{embed [[Page]]}}` and `{{embed ((uuid))}}` (closes [#71](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/71)).
|
|
40
68
|
- **Contributor onboarding (wave 4)** — ten new Good First Issues (GFI-39…GFI-48) filed on GitHub ([#88](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/88)–[#97](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/97)); index updated in [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md).
|
|
41
69
|
|
|
@@ -70,6 +98,14 @@ to stable package exports or default CLI behavior.
|
|
|
70
98
|
is created, and every consumer re-verifies the SHA-256 manifest for the exact
|
|
71
99
|
distributions produced by the single build job.
|
|
72
100
|
|
|
101
|
+
### Documentation erratum (2026-08-08)
|
|
102
|
+
|
|
103
|
+
- The initial GitHub Release notes incorrectly listed
|
|
104
|
+
`examples/run_synapse_rag.py`. The file is not part of v1.7.0 and
|
|
105
|
+
[#90](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/90)
|
|
106
|
+
remains open. This documentation-only correction does not change the tag,
|
|
107
|
+
distributions, attestations, or published SHA-256 digests.
|
|
108
|
+
|
|
73
109
|
## [1.6.0] - 2026-07-02
|
|
74
110
|
|
|
75
111
|
Minor release — Clean Architecture v1 structural slices (SRP/OCP), new public graph APIs, layer-boundary CI, and documentation SSOT. **No intentional breaking changes** to existing `matryca-parse` CLI behavior or stable package exports.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: logseq-matryca-parser
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.1
|
|
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
|
|
@@ -53,7 +53,7 @@ Description-Content-Type: text/markdown
|
|
|
53
53
|
[](#)
|
|
54
54
|

|
|
55
55
|
|
|
56
|
-
**v1.7.
|
|
56
|
+
**v1.7.1** — runnable offline SYNAPSE RAG integration, stricter release-note contracts, and security-refresh constraints for optional AI/development dependencies. See the [CHANGELOG](CHANGELOG.md) and [release process](docs/RELEASE_PROCESS.md).
|
|
57
57
|
|
|
58
58
|
> *Turning a forest of local plain-text files into a unified semantic powerhouse.*
|
|
59
59
|
|
|
@@ -147,6 +147,21 @@ Logseq Matryca Parser is a deterministic **Stack-Machine engine** that acts as t
|
|
|
147
147
|
|
|
148
148
|
---
|
|
149
149
|
|
|
150
|
+
## ⚡ Release highlights (v1.7.1)
|
|
151
|
+
|
|
152
|
+
Patch release — completes the promised SYNAPSE example and closes the security
|
|
153
|
+
alerts found during v1.7.0 post-release verification. **No intentional breaking
|
|
154
|
+
changes** to package APIs or CLI behavior.
|
|
155
|
+
|
|
156
|
+
| Area | Change |
|
|
157
|
+
| :--- | :--- |
|
|
158
|
+
| **SYNAPSE RAG** | New offline [`examples/run_synapse_rag.py`](examples/run_synapse_rag.py) exercises LangChain, LlamaIndex, context enrichment, and resolved page-embed expansion. |
|
|
159
|
+
| **Release integrity** | Release notes now fail validation when a repository-local link is missing or escapes the source tree. |
|
|
160
|
+
| **Dependency security** | Optional AI/development resolution constrains `aiohttp>=3.14.3` and `setuptools>=83.0.0`; base runtime dependencies are unchanged. |
|
|
161
|
+
| **Test suite** | **532** pytest cases with **91.90%** coverage. |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
150
165
|
## ⚡ Release highlights (v1.7.0)
|
|
151
166
|
|
|
152
167
|
Minor release — repository-wide correctness, safety, API, documentation, and release-engineering hardening. **No intentional breaking changes** to default CLI behavior or stable package exports.
|
|
@@ -412,7 +427,7 @@ Marker syntax (`[#A]`, `SCHEDULED: <...>`, `DEADLINE: <...>`) is stripped from `
|
|
|
412
427
|
## 🛠️ Quickstart
|
|
413
428
|
|
|
414
429
|
```bash
|
|
415
|
-
# Install from PyPI (latest: v1.7.
|
|
430
|
+
# Install from PyPI (latest: v1.7.1)
|
|
416
431
|
uv pip install logseq-matryca-parser
|
|
417
432
|
|
|
418
433
|
# Optional: filesystem watcher for live incremental graph updates
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
[](#)
|
|
13
13
|

|
|
14
14
|
|
|
15
|
-
**v1.7.
|
|
15
|
+
**v1.7.1** — runnable offline SYNAPSE RAG integration, stricter release-note contracts, and security-refresh constraints for optional AI/development dependencies. See the [CHANGELOG](CHANGELOG.md) and [release process](docs/RELEASE_PROCESS.md).
|
|
16
16
|
|
|
17
17
|
> *Turning a forest of local plain-text files into a unified semantic powerhouse.*
|
|
18
18
|
|
|
@@ -106,6 +106,21 @@ Logseq Matryca Parser is a deterministic **Stack-Machine engine** that acts as t
|
|
|
106
106
|
|
|
107
107
|
---
|
|
108
108
|
|
|
109
|
+
## ⚡ Release highlights (v1.7.1)
|
|
110
|
+
|
|
111
|
+
Patch release — completes the promised SYNAPSE example and closes the security
|
|
112
|
+
alerts found during v1.7.0 post-release verification. **No intentional breaking
|
|
113
|
+
changes** to package APIs or CLI behavior.
|
|
114
|
+
|
|
115
|
+
| Area | Change |
|
|
116
|
+
| :--- | :--- |
|
|
117
|
+
| **SYNAPSE RAG** | New offline [`examples/run_synapse_rag.py`](examples/run_synapse_rag.py) exercises LangChain, LlamaIndex, context enrichment, and resolved page-embed expansion. |
|
|
118
|
+
| **Release integrity** | Release notes now fail validation when a repository-local link is missing or escapes the source tree. |
|
|
119
|
+
| **Dependency security** | Optional AI/development resolution constrains `aiohttp>=3.14.3` and `setuptools>=83.0.0`; base runtime dependencies are unchanged. |
|
|
120
|
+
| **Test suite** | **532** pytest cases with **91.90%** coverage. |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
109
124
|
## ⚡ Release highlights (v1.7.0)
|
|
110
125
|
|
|
111
126
|
Minor release — repository-wide correctness, safety, API, documentation, and release-engineering hardening. **No intentional breaking changes** to default CLI behavior or stable package exports.
|
|
@@ -371,7 +386,7 @@ Marker syntax (`[#A]`, `SCHEDULED: <...>`, `DEADLINE: <...>`) is stripped from `
|
|
|
371
386
|
## 🛠️ Quickstart
|
|
372
387
|
|
|
373
388
|
```bash
|
|
374
|
-
# Install from PyPI (latest: v1.7.
|
|
389
|
+
# Install from PyPI (latest: v1.7.1)
|
|
375
390
|
uv pip install logseq-matryca-parser
|
|
376
391
|
|
|
377
392
|
# Optional: filesystem watcher for live incremental graph updates
|
|
@@ -6,8 +6,8 @@ Security fixes are provided **only for the latest released version** on [PyPI](h
|
|
|
6
6
|
|
|
7
7
|
| Version | Supported |
|
|
8
8
|
| ------- | --------- |
|
|
9
|
-
| **1.7.
|
|
10
|
-
| 1.
|
|
9
|
+
| **1.7.1** (latest) | Yes |
|
|
10
|
+
| 1.7.0 and older | No |
|
|
11
11
|
|
|
12
12
|
We recommend always running the current release and upgrading promptly when a security advisory is published.
|
|
13
13
|
|
|
@@ -608,7 +608,7 @@ Recursive and character-budget chunkers assume **approximately flat prose**. Log
|
|
|
608
608
|
| [`index.md`](index.md) | Canonical maintained knowledge-bundle entry point |
|
|
609
609
|
| [`design-docs/README.md`](design-docs/README.md) | Warning before using historical DDD blueprints |
|
|
610
610
|
|
|
611
|
-
### Quality gate (v1.7.
|
|
611
|
+
### Quality gate (v1.7.1)
|
|
612
612
|
|
|
613
613
|
Local and CI parity: `uv sync --all-extras` → `make lint` → `make check` →
|
|
614
614
|
`make test` → `make vendor-name-check` → `make docs-check`. These targets are
|
|
@@ -19,7 +19,7 @@ superseded_by: null
|
|
|
19
19
|
|
|
20
20
|
# Clean Code & Clean Architecture — Logseq Matryca Parser
|
|
21
21
|
|
|
22
|
-
**Version:** documents **v1.7.
|
|
22
|
+
**Version:** documents **v1.7.1** maintainer contracts (v1 structural backlog complete)
|
|
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
|
|
|
@@ -37,6 +37,14 @@ matryca-parse export /path/to/graph output --format langchain
|
|
|
37
37
|
|
|
38
38
|
Requires optional `[ai]` extra (`uv sync --extra ai`).
|
|
39
39
|
|
|
40
|
+
For a complete offline example that exercises the LangChain, LlamaIndex, and
|
|
41
|
+
context-enriched exports—including a resolved Logseq page embed—run
|
|
42
|
+
[`examples/run_synapse_rag.py`](../examples/run_synapse_rag.py):
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
uv run python examples/run_synapse_rag.py
|
|
46
|
+
```
|
|
47
|
+
|
|
40
48
|
---
|
|
41
49
|
|
|
42
50
|
## Recipe 2 — Load vault + fluent graph query
|
|
@@ -39,6 +39,8 @@ version; use `vX.Y.Z` for the git tag).
|
|
|
39
39
|
- [ ] Leave an empty `## [Unreleased]` section at the top
|
|
40
40
|
- [ ] Set `__version__ = "X.Y.Z"` in `src/logseq_matryca_parser/_version.py`; Hatchling derives package metadata from this single source
|
|
41
41
|
- [ ] Update `README.md`, `SECURITY.md`, and contributor-facing current-version references
|
|
42
|
+
- [ ] Verify every file, command, issue disposition, and shipped capability
|
|
43
|
+
named in the versioned changelog against the exact release commit
|
|
42
44
|
- [ ] Run `make all` (Ruff, Mypy, documentation checks, and Pytest)
|
|
43
45
|
- [ ] Run `python -m scripts.check_release_contract --tag vX.Y.Z`
|
|
44
46
|
- [ ] Build wheel and sdist once locally, run `python scripts/check_wheel_contract.py path/to/wheel.whl`, `twine check`, and record SHA-256 digests
|
|
@@ -52,8 +54,10 @@ python scripts/extract_changelog.py vX.Y.Z | less
|
|
|
52
54
|
python -m scripts.check_release_contract --tag vX.Y.Z
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
The first command shows exactly the section that will appear on GitHub.
|
|
56
|
-
|
|
57
|
+
The first command shows exactly the section that will appear on GitHub. Review
|
|
58
|
+
every file link and shipped claim against the exact commit that will receive
|
|
59
|
+
the tag; a non-empty section can still contain a factual mistake. The second
|
|
60
|
+
command rejects a malformed tag, a tag/source/runtime mismatch, non-empty
|
|
57
61
|
`[Unreleased]`, a missing versioned section, or release notes without bullets.
|
|
58
62
|
|
|
59
63
|
### 3. Commit, tag, push
|
|
@@ -95,6 +99,23 @@ Do not rebuild or replace a published version. Inspect the failed job first:
|
|
|
95
99
|
|
|
96
100
|
PyPI cannot be re-published for the same version; use a patch bump if the wheel upload failed.
|
|
97
101
|
|
|
102
|
+
#### Post-publication documentation correction
|
|
103
|
+
|
|
104
|
+
If the distributions are correct but the curated notes contain a factual
|
|
105
|
+
documentation error:
|
|
106
|
+
|
|
107
|
+
1. Do not move the tag, rebuild the distributions, or replace PyPI files.
|
|
108
|
+
2. Verify the actual tagged tree and published package before deciding the
|
|
109
|
+
correction scope.
|
|
110
|
+
3. Correct `CHANGELOG.md` on `main` with a dated erratum that states whether
|
|
111
|
+
artifact bytes, attestations, and digests are unchanged.
|
|
112
|
+
4. Update the GitHub Release notes to the corrected versioned changelog text.
|
|
113
|
+
5. Keep any undelivered issue open and record the correction in
|
|
114
|
+
[`docs/log.md`](log.md).
|
|
115
|
+
|
|
116
|
+
Use a new patch release instead when runtime behavior or package contents — not
|
|
117
|
+
only explanatory text — are wrong.
|
|
118
|
+
|
|
98
119
|
---
|
|
99
120
|
|
|
100
121
|
## Troubleshooting
|
|
@@ -103,7 +124,8 @@ PyPI cannot be re-published for the same version; use a patch bump if the wheel
|
|
|
103
124
|
|---------|-----|
|
|
104
125
|
| Tag on GitHub but no **Release** page | Confirm whether PyPI succeeded; recover only from the checksummed artifact of that exact workflow run. |
|
|
105
126
|
| PyPI version already exists | Bump patch version; never re-use a published version. |
|
|
106
|
-
| Notes look wrong | Re-run locally: `python scripts/extract_changelog.py vX.Y.Z
|
|
127
|
+
| Notes look wrong before publication | Re-run locally: `python scripts/extract_changelog.py vX.Y.Z`, compare to `CHANGELOG.md`, and verify every named file and capability against the tag candidate. |
|
|
128
|
+
| Notes are factually wrong after publication | Preserve the tag and artifacts; follow the documentation-correction procedure above and keep undelivered issues open. |
|
|
107
129
|
| CI fails on tests | Run `make all` locally before tagging. |
|
|
108
130
|
| Tag/version mismatch | Run `python -m scripts.check_release_contract --tag vX.Y.Z`; align `_version.py`, runtime metadata, and changelog before creating a new tag. |
|
|
109
131
|
| Hash verification fails | Stop. Do not publish or attach the bundle; create a clean patch release after diagnosis. |
|
|
@@ -8,9 +8,9 @@ audience: maintainers
|
|
|
8
8
|
owner: logseq-matryca-parser
|
|
9
9
|
authority: source_repository
|
|
10
10
|
execution_mode: reviewed
|
|
11
|
-
last_verified: 2026-08-
|
|
12
|
-
verified: 2026-08-
|
|
13
|
-
stale_after: 2026-11-
|
|
11
|
+
last_verified: 2026-08-08
|
|
12
|
+
verified: 2026-08-08
|
|
13
|
+
stale_after: 2026-11-06
|
|
14
14
|
okf_profile: matryca_okf_inspired_quality
|
|
15
15
|
okf_spec_version: null
|
|
16
16
|
source_commit: 8e90b44
|
|
@@ -318,11 +318,18 @@ and protects the target/workflow contract with focused tests. A repository-wide
|
|
|
318
318
|
|
|
319
319
|
### P1.6 — Release artifacts not built once
|
|
320
320
|
|
|
321
|
-
**Status:**
|
|
321
|
+
**Status:** resolved by #105, PR #123, and v1.7.0 on 2026-08-08.
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
At the audit baseline, pre-flight, PyPI build, and GitHub release did not prove
|
|
324
|
+
that they consumed the same immutable wheel/sdist, and workflow dependencies
|
|
325
|
+
used movable tags. The v1.7.0 release graph now builds once, records and
|
|
326
|
+
re-verifies SHA-256, publishes the exact files through PyPI OIDC, and creates
|
|
327
|
+
the GitHub Release only after PyPI succeeds. Every external action is pinned to
|
|
328
|
+
a reviewed full commit SHA.
|
|
324
329
|
|
|
325
|
-
**
|
|
330
|
+
**Evidence:** PR #123, release run 31237286005, public PyPI/GitHub hashes and
|
|
331
|
+
provenance, and the execution record in section 17. #124 tracks the upstream
|
|
332
|
+
Node.js runtime annotation without weakening this resolved lineage.
|
|
326
333
|
|
|
327
334
|
### P2 — Strategic debt valid but not as urgent as current findings
|
|
328
335
|
|
|
@@ -538,7 +545,8 @@ originally stacked on feature branches.
|
|
|
538
545
|
|
|
539
546
|
### Wave 4 — Release confidence
|
|
540
547
|
|
|
541
|
-
- #105: build once / publish exact bytes;
|
|
548
|
+
- #105: completed in v1.7.0 — build once / publish exact bytes;
|
|
549
|
+
- #124: wait for official Node.js 24 artifact-action manifests, then repin;
|
|
542
550
|
- pin actions by SHA;
|
|
543
551
|
- pin VCS dependency commits;
|
|
544
552
|
- install typed wheel in clean environment, verify `RECORD` and checksum;
|
|
@@ -656,7 +664,8 @@ FILE_URI_RESULT /private/etc/passwd
|
|
|
656
664
|
## 14. Limits and non-authoritative claims
|
|
657
665
|
|
|
658
666
|
- No benchmark was run against a real or 10k-page vault.
|
|
659
|
-
-
|
|
667
|
+
- At the 2026-08-06 baseline, no public release was qualified and no clean wheel
|
|
668
|
+
installation was verified. Section 17 records the v1.7.0 resolution.
|
|
660
669
|
- The follow-up phase opened PR #112, created issue #113, updated impacted issues, and closed only completed/duplicate entries in the reconciliation log. Milestones, branch protection, and remote workflows were not changed.
|
|
661
670
|
- The study does not prove complete compatibility with all Logseq versions.
|
|
662
671
|
- The symlink probe demonstrates macOS/POSIX behavior; the policy must include Windows matrix coverage.
|
|
@@ -720,7 +729,70 @@ every merged tranche reported seven passes and zero failures.
|
|
|
720
729
|
federation still requires final checks on the resulting merged `main`.
|
|
721
730
|
|
|
722
731
|
The unresolved roadmap is intentionally not folded into this stack: #103 and
|
|
723
|
-
#104 are the next correctness foundations; #
|
|
724
|
-
|
|
725
|
-
RFCs and contributor issues retain their existing
|
|
726
|
-
reconciliation ledger.
|
|
732
|
+
#104 are the next correctness foundations; #111 remains measurement work; #108
|
|
733
|
+
remains blocked on the corpus and benchmarks. #105 is completed by the release
|
|
734
|
+
record below. Product RFCs and contributor issues retain their existing
|
|
735
|
+
dispositions in the issue reconciliation ledger.
|
|
736
|
+
|
|
737
|
+
## 17. v1.7.0 release execution record — 2026-08-08
|
|
738
|
+
|
|
739
|
+
[PR #123](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/123)
|
|
740
|
+
prepared the SemVer-minor release and squash merged as `af45c1b3`. Fourteen PR
|
|
741
|
+
checks passed; fresh `main` CI and CodeQL also passed on that exact commit.
|
|
742
|
+
Tag `v1.7.0` points to `af45c1b3e75dfc32f42cfede5083f90aec8b96ce`.
|
|
743
|
+
|
|
744
|
+
The ordered [Release run](https://github.com/MarcoPorcellato/logseq-matryca-parser/actions/runs/31237286005)
|
|
745
|
+
completed every job:
|
|
746
|
+
|
|
747
|
+
1. Python 3.12 and 3.13 pre-flight ran dependency audit, `make all`, and clean
|
|
748
|
+
checkout verification.
|
|
749
|
+
2. One build job validated tag/source/runtime/changelog, built wheel and sdist,
|
|
750
|
+
ran wheel and Twine checks, recorded SHA-256, and uploaded one immutable
|
|
751
|
+
bundle.
|
|
752
|
+
3. PyPI downloaded and verified that bundle, then published it through trusted
|
|
753
|
+
publishing with OIDC attestations.
|
|
754
|
+
4. The GitHub Release ran only after PyPI succeeded, re-verified the same
|
|
755
|
+
manifest, and attached the same wheel, sdist, and `SHA256SUMS`.
|
|
756
|
+
|
|
757
|
+
Public verification matched all three digest surfaces:
|
|
758
|
+
|
|
759
|
+
| Distribution | SHA-256 |
|
|
760
|
+
|---|---|
|
|
761
|
+
| `logseq_matryca_parser-1.7.0-py3-none-any.whl` | `6624b59742206ad9c4cf68dd00686f0995861ebc304f9241d05b5a3d047cf354` |
|
|
762
|
+
| `logseq_matryca_parser-1.7.0.tar.gz` | `57e44dd90cbc7aa43b7fb47462fdddfe4d8759a45fd6c268250cfa1356a36f62` |
|
|
763
|
+
|
|
764
|
+
PyPI exposes provenance for both files. A direct PyPI install reported metadata
|
|
765
|
+
version `1.7.0`; reinstalling the byte-identical published wheel into the
|
|
766
|
+
qualified dependency environment produced runtime version `1.7.0`, imported
|
|
767
|
+
from `site-packages`, and rendered `matryca-parse --help` successfully. #105 is
|
|
768
|
+
closed with this evidence.
|
|
769
|
+
|
|
770
|
+
The initial release notes incorrectly listed `examples/run_synapse_rag.py`,
|
|
771
|
+
which is absent from the tag; #90 therefore remains open. The correction is a
|
|
772
|
+
dated changelog and GitHub Release erratum only: tag, distributions,
|
|
773
|
+
attestations, and digests remain unchanged. The only workflow annotations were
|
|
774
|
+
upstream Node.js 20 deprecation warnings; #124 tracks migration when official
|
|
775
|
+
Node.js 24 artifact-action manifests become available.
|
|
776
|
+
|
|
777
|
+
## 18. v1.7.1 corrective release candidate — 2026-08-08
|
|
778
|
+
|
|
779
|
+
Post-release verification of v1.7.0 found one promised repository example was
|
|
780
|
+
absent and four Dependabot alerts affected optional AI/development lock entries.
|
|
781
|
+
The v1.7.1 candidate addresses those findings without changing the base runtime
|
|
782
|
+
dependency set or stable package APIs:
|
|
783
|
+
|
|
784
|
+
1. `examples/run_synapse_rag.py` runs offline against a temporary Logseq graph,
|
|
785
|
+
exercises all three public SYNAPSE conversion paths, and proves resolved
|
|
786
|
+
page-embed expansion; a regression test and Cookbook link protect it.
|
|
787
|
+
2. The release-note contract rejects missing and repository-escaping local
|
|
788
|
+
links, carrying forward the post-v1.7.0 correction gate.
|
|
789
|
+
3. The lock constrains `aiohttp>=3.14.3` and `setuptools>=83.0.0`; local base and
|
|
790
|
+
optional-AI dependency audits report no known vulnerabilities (the pinned
|
|
791
|
+
NLTK VCS requirement is reported as not version-auditable).
|
|
792
|
+
4. The isolated candidate environment passes Ruff, Mypy, maintained-document
|
|
793
|
+
validation, the terminology gate, 532 tests, 91.90% coverage, the release
|
|
794
|
+
and wheel contracts, Twine checks, and zero import cycles.
|
|
795
|
+
|
|
796
|
+
This section records a qualified candidate, not a completed publication. Final
|
|
797
|
+
tag, workflow, checksums, provenance, installation, and issue-closure evidence
|
|
798
|
+
must replace that status only after public verification.
|
|
@@ -8,9 +8,9 @@ audience: maintainers
|
|
|
8
8
|
owner: logseq-matryca-parser
|
|
9
9
|
authority: source_repository
|
|
10
10
|
execution_mode: reviewed
|
|
11
|
-
last_verified: 2026-08-
|
|
12
|
-
verified: 2026-08-
|
|
13
|
-
stale_after: 2027-02-
|
|
11
|
+
last_verified: 2026-08-08
|
|
12
|
+
verified: 2026-08-08
|
|
13
|
+
stale_after: 2027-02-04
|
|
14
14
|
okf_profile: matryca_okf_inspired_quality
|
|
15
15
|
okf_spec_version: null
|
|
16
16
|
supersedes: null
|
|
@@ -19,6 +19,35 @@ superseded_by: null
|
|
|
19
19
|
|
|
20
20
|
# Documentation evolution log
|
|
21
21
|
|
|
22
|
+
## 2026-08-08
|
|
23
|
+
|
|
24
|
+
- Prepared the v1.7.1 patch candidate to deliver the previously omitted
|
|
25
|
+
`examples/run_synapse_rag.py`, validate its three public SYNAPSE conversion
|
|
26
|
+
paths and resolved page embed, and constrain the optional AI/development lock
|
|
27
|
+
to `aiohttp>=3.14.3` and `setuptools>=83.0.0`. Publication and issue closure
|
|
28
|
+
remain contingent on merged CI, tag workflow, and public artifact checks.
|
|
29
|
+
- Merged [PR #123](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/123)
|
|
30
|
+
and published the SemVer-minor v1.7.0 release from
|
|
31
|
+
`main@af45c1b3e75dfc32f42cfede5083f90aec8b96ce`.
|
|
32
|
+
- Verified the complete ordered release run: Python 3.12/3.13 pre-flight,
|
|
33
|
+
dependency audit, non-mutating quality gate, one wheel/sdist build, wheel and
|
|
34
|
+
Twine contracts, SHA-256 manifest, PyPI trusted publication with OIDC
|
|
35
|
+
attestations, and GitHub Release creation from the same bundle.
|
|
36
|
+
- Reconciled GitHub, PyPI, and local verification. Wheel SHA-256 is
|
|
37
|
+
`6624b59742206ad9c4cf68dd00686f0995861ebc304f9241d05b5a3d047cf354`;
|
|
38
|
+
sdist SHA-256 is
|
|
39
|
+
`57e44dd90cbc7aa43b7fb47462fdddfe4d8759a45fd6c268250cfa1356a36f62`.
|
|
40
|
+
PyPI provenance exists for both files; direct installation, runtime metadata,
|
|
41
|
+
package import, and CLI help report v1.7.0 successfully.
|
|
42
|
+
- Closed #105 with public evidence and opened
|
|
43
|
+
[#124](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/124)
|
|
44
|
+
for the upstream Node.js 20 artifact-action annotations. Current official
|
|
45
|
+
releases still declare `node20`, so no unreviewed workaround was introduced.
|
|
46
|
+
- Corrected a factual release-note error: `examples/run_synapse_rag.py` is not
|
|
47
|
+
present in v1.7.0, so #90 remains open. Added a dated changelog erratum and a
|
|
48
|
+
post-publication correction procedure; tag, artifacts, attestations, and
|
|
49
|
+
digests remain unchanged.
|
|
50
|
+
|
|
22
51
|
## 2026-08-07
|
|
23
52
|
|
|
24
53
|
- Prepared [PR #122](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/122)
|
|
@@ -8,9 +8,9 @@ audience: maintainers
|
|
|
8
8
|
owner: logseq-matryca-parser
|
|
9
9
|
authority: source_repository
|
|
10
10
|
execution_mode: reviewed
|
|
11
|
-
last_verified: 2026-08-
|
|
12
|
-
verified: 2026-08-
|
|
13
|
-
stale_after: 2026-09-
|
|
11
|
+
last_verified: 2026-08-08
|
|
12
|
+
verified: 2026-08-08
|
|
13
|
+
stale_after: 2026-09-07
|
|
14
14
|
okf_profile: matryca_okf_inspired_quality
|
|
15
15
|
okf_spec_version: null
|
|
16
16
|
supersedes: docs/quality/ISSUE_TRIAGE_2026-07.md
|
|
@@ -25,10 +25,11 @@ closure is justified only by current code, tests or an explicit duplicate;
|
|
|
25
25
|
runtime behavior without a dedicated regression test remains tracked.
|
|
26
26
|
|
|
27
27
|
The reconciliation was published in [PR #112](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/112).
|
|
28
|
-
After the actions below, merged follow-up PRs #114-#
|
|
29
|
-
closure of #106, live verification on 2026-08-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
After the actions below, merged follow-up PRs #114-#123, and the evidence-based
|
|
29
|
+
closure of #105 and #106, live verification on 2026-08-08 found 23 open issues:
|
|
30
|
+
#105 left the backlog after the verified v1.7.0 publication, while new upstream
|
|
31
|
+
runtime follow-up #124 entered it. The parser P0 and the completed API,
|
|
32
|
+
collision, filesystem, and release-lineage tranches are no longer open.
|
|
32
33
|
|
|
33
34
|
## Decisions
|
|
34
35
|
|
|
@@ -52,7 +53,7 @@ longer part of the open backlog.
|
|
|
52
53
|
| #87 | Keep, high priority | Now | Deterministic pathological parser latency; feeds #111 |
|
|
53
54
|
| #88 | Keep | Next | Direct strategy-module tests are still absent |
|
|
54
55
|
| #89 | Keep as canonical graph API test issue | Next | Dedicated boundary tests remain incomplete |
|
|
55
|
-
| #90 |
|
|
56
|
+
| #90 | Close only after verified v1.7.1 publication | Release gate | The patch candidate adds the offline example, all three SYNAPSE exports, resolved page-embed proof, Cookbook link, and regression test |
|
|
56
57
|
| #91 | Keep | Next | Direct `kinetic_export` tests are absent |
|
|
57
58
|
| #92 | Keep, narrow to regression protection | Next | Runtime resolves canonical aliases; dedicated alias test is absent |
|
|
58
59
|
| #93 | Keep, narrow to LENS recipe | Next | Broken-ref tip exists; complete visualization recipe is absent |
|
|
@@ -64,7 +65,7 @@ longer part of the open backlog.
|
|
|
64
65
|
| #102 | Closed by merged [PR #120](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/120) | Shipped | Stable collision diagnostics, preserved winner policy, typed strict mode, CLI rendering, and no-ghost tests |
|
|
65
66
|
| #103 | Expand | Wave 0/3 | Add rename/backlink cold-load equivalence |
|
|
66
67
|
| #104 | Expand | Wave 0/3 | Add arbitrary-depth parser regression matrix |
|
|
67
|
-
| #105 |
|
|
68
|
+
| #105 | Closed after [PR #123](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/123) and v1.7.0 verification | Shipped | One checksummed bundle reached PyPI through OIDC and the GitHub Release byte-for-byte; public provenance, hashes, install, runtime, metadata, and CLI were verified |
|
|
68
69
|
| #106 | Closed after merged [PR #121](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/121) | Shipped | Vault confinement, target identity, metadata preservation, dry-run patch, limits, typed diagnostics, symlink and `file://` tests |
|
|
69
70
|
| #107 | Closed by merged [PR #117](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/117) | Shipped | PEP 561 wheel marker, derived version contract, API tiers, import/signature tests, and downstream Mypy probe |
|
|
70
71
|
| #108 | Keep blocked by prerequisites | Wave 6 | Begin only after deep parser fix and #104 corpus |
|
|
@@ -92,7 +93,7 @@ longer part of the open backlog.
|
|
|
92
93
|
completed: parser P0 + #106 filesystem boundary + #101/#102/#107 foundations
|
|
93
94
|
-> next: #103 snapshot correctness + #104 semantic corpus
|
|
94
95
|
-> complete #109 documentation federation + #110 diagnostic producers
|
|
95
|
-
-> #105 release provenance
|
|
96
|
+
-> completed: #105 release provenance in v1.7.0
|
|
96
97
|
-> #111 measured scale
|
|
97
98
|
-> #108 parser phase extraction
|
|
98
99
|
```
|
|
@@ -117,3 +118,24 @@ not touch protected parser/graph hubs or weaken these gates.
|
|
|
117
118
|
- [PR #122](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/122)
|
|
118
119
|
publishes this final live-backlog reconciliation directly against `main`
|
|
119
120
|
without claiming additional implementation scope.
|
|
121
|
+
- Merged [PR #123](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/123)
|
|
122
|
+
and published v1.7.0 from `main@af45c1b3`. The ordered release run built one
|
|
123
|
+
wheel/sdist bundle, re-verified its SHA-256 manifest before PyPI and GitHub,
|
|
124
|
+
published OIDC attestations, and passed an independent install/runtime/CLI
|
|
125
|
+
check. #105 is closed.
|
|
126
|
+
- Kept #90 open after live tree verification found that
|
|
127
|
+
`examples/run_synapse_rag.py` is still absent. The initial v1.7.0 release
|
|
128
|
+
notes listed it incorrectly; the changelog and GitHub Release receive a
|
|
129
|
+
transparent documentation-only erratum without changing artifacts.
|
|
130
|
+
- Prepared the v1.7.1 patch candidate to satisfy every #90 acceptance
|
|
131
|
+
criterion and constrain the two vulnerable optional AI/development
|
|
132
|
+
dependencies. #90 remains open until the merged tag, GitHub Release, and
|
|
133
|
+
PyPI package have been verified publicly.
|
|
134
|
+
|
|
135
|
+
## Post-baseline issue — 2026-08-08
|
|
136
|
+
|
|
137
|
+
- [#124](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/124)
|
|
138
|
+
tracks the Node.js 20 deprecation annotations emitted by the successful
|
|
139
|
+
v1.7.0 run. Official `upload-artifact` v7.0.1 and `download-artifact` v8.0.1
|
|
140
|
+
still declare `node20`, so the repository must wait for official Node.js 24
|
|
141
|
+
manifests and then repin reviewed full SHAs without changing release lineage.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"""Run the three public SYNAPSE conversion paths against an offline fixture.
|
|
2
|
+
|
|
3
|
+
Run from the repository root after installing the optional AI integrations::
|
|
4
|
+
|
|
5
|
+
uv sync --extra ai
|
|
6
|
+
uv run python examples/run_synapse_rag.py
|
|
7
|
+
|
|
8
|
+
The temporary Logseq graph includes a resolved page embed so the contextual
|
|
9
|
+
export demonstrates transclusion without requiring a real vault or network.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
from tempfile import TemporaryDirectory
|
|
17
|
+
|
|
18
|
+
from logseq_matryca_parser import LogseqGraph, SynapseAdapter
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def build_fixture(root: Path) -> LogseqGraph:
|
|
22
|
+
"""Create and load a minimal two-page Logseq graph."""
|
|
23
|
+
pages = root / "pages"
|
|
24
|
+
pages.mkdir(parents=True)
|
|
25
|
+
(pages / "RAG Demo.md").write_text(
|
|
26
|
+
"tags:: rag, demo\n\n"
|
|
27
|
+
"- Retrieval context\n"
|
|
28
|
+
" - Include this knowledge: {{embed [[Shared Knowledge]]}}\n",
|
|
29
|
+
encoding="utf-8",
|
|
30
|
+
)
|
|
31
|
+
(pages / "Shared Knowledge.md").write_text(
|
|
32
|
+
"- Matryca preserves Logseq hierarchy and provenance.\n",
|
|
33
|
+
encoding="utf-8",
|
|
34
|
+
)
|
|
35
|
+
return LogseqGraph.load_directory(root)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def run_demo() -> None:
|
|
39
|
+
"""Convert the fixture with LangChain, LlamaIndex, and contextual exports."""
|
|
40
|
+
with TemporaryDirectory(prefix="logseq-matryca-synapse-") as directory:
|
|
41
|
+
graph = build_fixture(Path(directory))
|
|
42
|
+
page = graph.pages["RAG Demo"]
|
|
43
|
+
|
|
44
|
+
langchain_documents = SynapseAdapter.to_langchain_documents(
|
|
45
|
+
page.root_nodes,
|
|
46
|
+
source_name=page.title,
|
|
47
|
+
)
|
|
48
|
+
llamaindex_nodes = SynapseAdapter.to_llamaindex_nodes(
|
|
49
|
+
page.root_nodes,
|
|
50
|
+
page_title=page.title,
|
|
51
|
+
)
|
|
52
|
+
contextual_chunks = SynapseAdapter.to_context_enriched_chunks(
|
|
53
|
+
page.root_nodes,
|
|
54
|
+
graph,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
expanded = contextual_chunks[-1].page_content
|
|
58
|
+
expected_embed = "Matryca preserves Logseq hierarchy and provenance."
|
|
59
|
+
if expected_embed not in expanded or "{{embed" in expanded:
|
|
60
|
+
raise RuntimeError("resolved page embed was not expanded in contextual output")
|
|
61
|
+
|
|
62
|
+
print(f"LangChain documents: {len(langchain_documents)}")
|
|
63
|
+
print(f"LlamaIndex nodes: {len(llamaindex_nodes)}")
|
|
64
|
+
print(f"Context-enriched chunks: {len(contextual_chunks)}")
|
|
65
|
+
print(f"Resolved page embed: {expanded}")
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
if __name__ == "__main__":
|
|
69
|
+
try:
|
|
70
|
+
run_demo()
|
|
71
|
+
except ImportError as exc:
|
|
72
|
+
print(
|
|
73
|
+
"SYNAPSE AI dependencies are missing. "
|
|
74
|
+
"Install them with `uv sync --extra ai` and run this script again. "
|
|
75
|
+
f"Details: {exc}",
|
|
76
|
+
file=sys.stderr,
|
|
77
|
+
)
|
|
78
|
+
raise SystemExit(1) from exc
|