logseq-matryca-parser 1.8.1__tar.gz → 1.8.2__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.8.1 → logseq_matryca_parser-1.8.2}/.github/dependabot.yml +4 -0
- logseq_matryca_parser-1.8.2/.github/workflows/ci.yml +150 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/daily-metrics.yml +4 -1
- logseq_matryca_parser-1.8.2/.github/workflows/dependency-hygiene.yml +37 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/dependency-review.yml +2 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/parser-adversarial.yml +6 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/pypi_publish.yml +32 -24
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/scorecard.yml +3 -2
- logseq_matryca_parser-1.8.2/.github/workflows/workflow-analysis.yml +59 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.pre-commit-config.yaml +4 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/AGENTS.md +3 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/CHANGELOG.md +27 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/CONTRIBUTING.md +3 -2
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/PKG-INFO +2 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/README.md +1 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/RELEASE_HIGHLIGHTS.md +15 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/SECURITY.md +3 -2
- logseq_matryca_parser-1.8.2/docs/CI_ASSURANCE.md +157 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/CLEAN_CODE_ARCHITECTURE.md +4 -4
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/CODEQL.md +7 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/COOKBOOK.md +41 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/README.md +4 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/RELEASE_PROCESS.md +4 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/ROADMAP_2026-2027.md +20 -19
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/goals/LSDOC_PARSER_ASSURANCE_GOAL.md +22 -10
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/index.md +4 -3
- logseq_matryca_parser-1.8.2/docs/internal/POST_V1_8_1_BACKLOG_EXECUTION_2026-08-25.md +391 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/log.md +68 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/maintained.toml +1 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/quality/README.md +4 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/API_STABILITY.md +3 -1
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-30-native-github-actions.md +307 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/specs/2026-08-30-native-github-actions-design.md +148 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/metrics/index.json +1 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/metrics/quarters/2026-Q3.json +1371 -201
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/pyproject.toml +6 -0
- logseq_matryca_parser-1.8.2/release-bundle/RELEASE_NOTES.md +26 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/_version.py +1 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/graph.py +2 -2
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic_commands.py +2 -2
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/local_graph_assurance.py +1 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/synapse.py +4 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_check_wheel_contract.py +1 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_graph.py +17 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_kinetic.py +3 -1
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_lens.py +18 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_local_graph_assurance.py +31 -4
- logseq_matryca_parser-1.8.2/tests/test_module_entrypoint.py +17 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_public_api_contract.py +6 -0
- logseq_matryca_parser-1.8.2/tests/test_quality_gate_contract.py +489 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_synapse.py +7 -3
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_writer_security.py +4 -2
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/typing_samples/public_api.py +4 -1
- logseq_matryca_parser-1.8.2/zizmor.yml +3 -0
- logseq_matryca_parser-1.8.1/.github/workflows/ci.yml +0 -80
- logseq_matryca_parser-1.8.1/release-bundle/RELEASE_NOTES.md +0 -55
- logseq_matryca_parser-1.8.1/tests/test_quality_gate_contract.py +0 -170
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.cursorignore +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.cursorrules +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.gitattributes +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/CODEOWNERS +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/FUNDING.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/clean_architecture.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/clean_arch_issue_numbers.txt +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/copilot-instructions.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/dependency-license-overrides.toml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/labels.yml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/scripts/create_clean_arch_issues.sh +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/scripts/create_good_first_issues.sh +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.gitignore +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.repomixignore +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/CITATION.cff +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/CLAUDE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/CODE_OF_CONDUCT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/GOVERNANCE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/LICENSE +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/MAINTAINERS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/Makefile +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/NOTICE +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/SUPPORT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/claude-skill-logseq-read/SKILL.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/claude-skill-logseq-read/scripts/parse_logseq.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/AAIF_ALIGNMENT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/AI_CONTRIBUTION_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/ARCHITECTURE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/BUG_HUNT_REPORT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/DOCUMENTATION_SYSTEM.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/GOOD_FIRST_ISSUES.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/ISSUE_TRIAGE_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/LSDOC_REFERENCE_STUDY_AND_EXECUTION_PLAN_2026-08-16.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/README_READABILITY_REPORT_2026-08-08.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_GOVERNANCE_AAIF_STUDY_2026-08-19.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_IMPROVEMENT_STUDY_2026-07-28.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_STELLAR_ROADMAP_2026-08-06.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0003-AAIF-SUBMISSION-GATE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-001-external-oracle-boundary.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-002-local-graph-assurance-boundary.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/decisions/index.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/ARCHITECTURE_BLUEPRINT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/CODE_SCAFFOLD.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_ASSET_RESOLUTION_SPEC.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_DATASCRIPT_MAPPING.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_TEMPORAL_ONTOLOGY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/OFFICIAL_MLDOC_SPECS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/README.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/design-docs/REFERENCE_SPEC.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/error_log.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/internal/ASSURANCE_TERRA_HANDOFF_2026-08-21.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/internal/LOCAL_CODE_STUDY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/internal/M1A_CORRECTIVE_HARDENING_RESTART_HANDOFF_2026-08-16.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/internal/M5_LOCAL_GRAPH_ASSURANCE_REVIEW_HANDOFF_2026-08-18.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/internal/STATIC_ANALYSIS_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/logseq_ast_primer.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/quality/CLEAN_ARCH_BACKLOG.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/quality/GITHUB_CLEAN_ARCH_ROADMAP.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/quality/ISSUE_RECONCILIATION_2026-08-06.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/quality/ISSUE_TRIAGE_2026-07.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/AGENT_ACTION_CONTRACT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/CONFORMANCE_SUPPORT_MATRIX.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/DEPENDENCY_LICENSE_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/DIAGNOSTICS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/FILESYSTEM_SAFETY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/LOCAL_GRAPH_ASSURANCE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/PERFORMANCE_EVIDENCE.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/reference/index.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/rfc/OLLAMA_RAG.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/rfc/SOURCE_LOCATION_RFC.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_AGENT_NATIVE_XRAY.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_CLI_HYDRATION_AND_ENRICHMENT.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_CONTEXT_SYNTHESIS_AND_SCOPING.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_EMBED_EXPANSION_AND_FLUENT_QUERIES.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_GRAPH_RAG_SEMANTICS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_HEADLESS_WRITER.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_INCREMENTAL_WATCHER.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_INLINE_SHIELD_AND_NAMESPACES.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_OBSIDIAN_ADAPTER.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_ROBUSTNESS_AND_SOFT_BREAKS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_TOML_FIX_AND_PYPI_DISTRIBUTION.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_UUID_AND_GRAPH_SUPERPOWERS.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/security/DAILY_METRICS_THREAT_MODEL.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/plans/2026-08-20-parser-lexical-state.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/plans/2026-08-20-runtime-evidence-harness.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/plans/2026-08-21-graph-mutation-coherence.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/plans/2026-08-21-post-m9-reconciliation.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/plans/2026-08-24-local-assurance-coverage.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/specs/2026-08-20-parser-lexical-state-design.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/specs/2026-08-21-graph-mutation-coherence-design.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/docs/superpowers/specs/2026-08-24-meaningful-test-coverage-design.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/examples/demo_logseq_journal.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/examples/run_demo.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/examples/run_synapse_rag.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/legacy/local_digestor.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/lib/bindings/utils.js +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/lib/tom-select/tom-select.complete.min.js +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/lib/tom-select/tom-select.css +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/lib/vis-9.1.2/vis-network.css +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/lib/vis-9.1.2/vis-network.min.js +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/llms.txt +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/metrics/quarters/2026-Q2.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/repomix-output-parser.xml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/__init__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/check_documentation.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/check_release_contract.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/check_vendor_free_docs.sh +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/check_wheel_contract.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/debug_pre_release.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/extract_changelog.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/generate_supply_chain_evidence.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/scripts/update_compat_snapshots.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/.gitignore +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/NOTICE +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/__init__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/__main__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/_lexical_state.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/agent_press.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/agent_writer.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/diagnostics.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/exceptions.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/forge.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic_export.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/lens.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logos_core.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logos_parser.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logseq_paths.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/py.typed +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/pyproject.toml +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/synapse_embed.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/__init__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/deep-refresh-regression.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/hierarchy-identity.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/manifest.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/pages/nested-title-entrypoint.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/properties-and-links.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-deep-refresh.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-hierarchy-identity.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-nested-entrypoint.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-properties-links-assets.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-softbreak-logbook.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-task-timing.exact.json +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/soft-breaks-properties-logbook.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/tasks-priority-time.md +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/__init__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/adversarial.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/corpus.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/invariants.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/projection.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/work_growth.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/performance/__init__.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/performance/runtime_evidence.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/performance/synthetic_vault.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_agent_press.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_agent_writer.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_check_documentation.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_check_release_contract.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_compat_corpus.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_demo_example.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_diagnostics.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_exceptions.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_extract_changelog.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_forge.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_generate_supply_chain_evidence.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_graph_collisions.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_graph_concurrency.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_layer_boundary.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_llms_txt_contract.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_logos_parser.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_logseq_paths.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_package_version.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_parser_adversarial.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_parser_deep_refresh.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_parser_lexical_state.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_parser_work_growth.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_performance_evidence_docs.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_performance_synthetic_vault.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_pre_release_roundtrip.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_runtime_evidence.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/tests/test_synapse_example.py +0 -0
- {logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/uv.lock +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,150 @@
|
|
|
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
|
+
run: uv run pip-audit --no-deps --disable-pip -r "${{ runner.temp }}/requirements-audit.txt"
|
|
115
|
+
|
|
116
|
+
package-contract:
|
|
117
|
+
name: Wheel and source distribution contract
|
|
118
|
+
runs-on: ubuntu-24.04
|
|
119
|
+
timeout-minutes: 10
|
|
120
|
+
steps:
|
|
121
|
+
- name: Checkout without credentials
|
|
122
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
123
|
+
with:
|
|
124
|
+
persist-credentials: false
|
|
125
|
+
|
|
126
|
+
- name: Install pinned uv
|
|
127
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
128
|
+
with:
|
|
129
|
+
version: "0.11.7"
|
|
130
|
+
python-version: "3.12"
|
|
131
|
+
enable-cache: true
|
|
132
|
+
|
|
133
|
+
- name: Sync locked dependencies
|
|
134
|
+
run: uv sync --locked --all-extras
|
|
135
|
+
|
|
136
|
+
- name: Build wheel and source distribution
|
|
137
|
+
run: uv build --out-dir dist-contract
|
|
138
|
+
|
|
139
|
+
- name: Verify wheel metadata and PEP 561 marker
|
|
140
|
+
run: uv run python scripts/check_wheel_contract.py dist-contract/*.whl
|
|
141
|
+
|
|
142
|
+
- name: Validate distribution metadata
|
|
143
|
+
run: uvx --from twine==6.2.0 twine check dist-contract/*
|
|
144
|
+
|
|
145
|
+
- name: Verify downstream typing from the wheel
|
|
146
|
+
run: |
|
|
147
|
+
uv venv "${{ runner.temp }}/typing-venv"
|
|
148
|
+
uv pip install --python "${{ runner.temp }}/typing-venv/bin/python" mypy==1.20.2 dist-contract/*.whl
|
|
149
|
+
cd "${{ runner.temp }}"
|
|
150
|
+
"${{ runner.temp }}/typing-venv/bin/python" -m mypy --strict "${{ github.workspace }}/tests/typing_samples/public_api.py"
|
{logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/daily-metrics.yml
RENAMED
|
@@ -19,16 +19,19 @@ env:
|
|
|
19
19
|
jobs:
|
|
20
20
|
save-metrics:
|
|
21
21
|
if: github.ref == 'refs/heads/main'
|
|
22
|
-
runs-on: ubuntu-
|
|
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
|
{logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/dependency-review.yml
RENAMED
|
@@ -13,7 +13,8 @@ concurrency:
|
|
|
13
13
|
jobs:
|
|
14
14
|
dependency-review:
|
|
15
15
|
name: Block newly introduced vulnerable dependencies
|
|
16
|
-
runs-on: ubuntu-
|
|
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
|
{logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/parser-adversarial.yml
RENAMED
|
@@ -14,21 +14,24 @@ permissions:
|
|
|
14
14
|
|
|
15
15
|
jobs:
|
|
16
16
|
bounded-generated-assurance:
|
|
17
|
-
runs-on: ubuntu-
|
|
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@
|
|
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
|
{logseq_matryca_parser-1.8.1 → logseq_matryca_parser-1.8.2}/.github/workflows/pypi_publish.yml
RENAMED
|
@@ -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-
|
|
18
|
+
runs-on: ubuntu-24.04
|
|
19
|
+
timeout-minutes: 20
|
|
19
20
|
strategy:
|
|
20
21
|
fail-fast: false
|
|
21
22
|
matrix:
|
|
@@ -23,21 +24,23 @@ 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@
|
|
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:
|
|
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
|
|
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
|
+
uv run pip-audit --no-deps --disable-pip -r "${{ runner.temp }}/requirements-audit.txt"
|
|
41
44
|
|
|
42
45
|
- name: Run full quality gate
|
|
43
46
|
run: make all
|
|
@@ -48,7 +51,8 @@ jobs:
|
|
|
48
51
|
build:
|
|
49
52
|
name: Build immutable release bundle
|
|
50
53
|
needs: pre-flight
|
|
51
|
-
runs-on: ubuntu-
|
|
54
|
+
runs-on: ubuntu-24.04
|
|
55
|
+
timeout-minutes: 15
|
|
52
56
|
permissions:
|
|
53
57
|
contents: read
|
|
54
58
|
id-token: write
|
|
@@ -58,13 +62,14 @@ jobs:
|
|
|
58
62
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
59
63
|
with:
|
|
60
64
|
fetch-depth: 0
|
|
65
|
+
persist-credentials: false
|
|
61
66
|
|
|
62
67
|
- name: Install uv
|
|
63
|
-
uses: astral-sh/setup-uv@
|
|
68
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
64
69
|
with:
|
|
65
70
|
version: "0.11.7"
|
|
66
71
|
python-version: "3.12"
|
|
67
|
-
enable-cache:
|
|
72
|
+
enable-cache: false
|
|
68
73
|
|
|
69
74
|
- name: Sync locked dependencies
|
|
70
75
|
run: uv sync --locked --all-extras
|
|
@@ -115,7 +120,7 @@ jobs:
|
|
|
115
120
|
| sha256sum --check -
|
|
116
121
|
|
|
117
122
|
- name: Attest release artifact provenance
|
|
118
|
-
uses: actions/attest@
|
|
123
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
119
124
|
with:
|
|
120
125
|
subject-path: |
|
|
121
126
|
release-bundle/dist/*
|
|
@@ -124,7 +129,7 @@ jobs:
|
|
|
124
129
|
release-bundle/SHA256SUMS
|
|
125
130
|
|
|
126
131
|
- name: Bind the production SBOM to the distributions
|
|
127
|
-
uses: actions/attest@
|
|
132
|
+
uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
|
|
128
133
|
with:
|
|
129
134
|
subject-path: release-bundle/dist/*
|
|
130
135
|
sbom-path: release-bundle/SBOM.cdx.json
|
|
@@ -154,7 +159,8 @@ jobs:
|
|
|
154
159
|
publish:
|
|
155
160
|
name: Publish exact distributions to PyPI
|
|
156
161
|
needs: build
|
|
157
|
-
runs-on: ubuntu-
|
|
162
|
+
runs-on: ubuntu-24.04
|
|
163
|
+
timeout-minutes: 10
|
|
158
164
|
environment:
|
|
159
165
|
name: pypi
|
|
160
166
|
url: https://pypi.org/p/logseq-matryca-parser
|
|
@@ -182,7 +188,8 @@ jobs:
|
|
|
182
188
|
github-release:
|
|
183
189
|
name: Publish GitHub Release from exact distributions
|
|
184
190
|
needs: publish
|
|
185
|
-
runs-on: ubuntu-
|
|
191
|
+
runs-on: ubuntu-24.04
|
|
192
|
+
timeout-minutes: 10
|
|
186
193
|
permissions:
|
|
187
194
|
contents: write
|
|
188
195
|
steps:
|
|
@@ -199,15 +206,16 @@ jobs:
|
|
|
199
206
|
| sha256sum --check -
|
|
200
207
|
|
|
201
208
|
- name: Create GitHub Release with verified artifacts
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
release-bundle/
|
|
209
|
-
release-bundle/
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
env:
|
|
210
|
+
GH_TOKEN: ${{ github.token }}
|
|
211
|
+
run: |
|
|
212
|
+
gh release create "$GITHUB_REF_NAME" \
|
|
213
|
+
release-bundle/dist/* \
|
|
214
|
+
release-bundle/SBOM.cdx.json \
|
|
215
|
+
release-bundle/DEPENDENCY_LICENSES.json \
|
|
216
|
+
release-bundle/SHA256SUMS \
|
|
217
|
+
--repo "$GITHUB_REPOSITORY" \
|
|
218
|
+
--verify-tag \
|
|
219
|
+
--title "$GITHUB_REF_NAME" \
|
|
220
|
+
--notes-file release-bundle/RELEASE_NOTES.md \
|
|
221
|
+
--latest
|
|
@@ -11,7 +11,8 @@ permissions: read-all
|
|
|
11
11
|
jobs:
|
|
12
12
|
analysis:
|
|
13
13
|
name: Scorecard analysis
|
|
14
|
-
runs-on: ubuntu-
|
|
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@
|
|
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 .
|
|
@@ -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,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.8.2] - 2026-08-30
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Native cross-platform GitHub assurance** — replace the public-repository
|
|
15
|
+
receipt-routing experiment with SHA-pinned GitHub-hosted quality, packaging,
|
|
16
|
+
dependency, CodeQL, Linux, macOS, and Windows checks. Local maintainer
|
|
17
|
+
guidance now treats hosted Actions as the authoritative public CI path (#194).
|
|
18
|
+
- **Cookbook guidance** — add corrected broken-block-reference and LENS
|
|
19
|
+
visualization recipes, including their CLI outcome and optional dependency
|
|
20
|
+
boundaries (#195).
|
|
21
|
+
- **Graph loader path-type acceptance** — `LogseqGraph.load_directory` accepts
|
|
22
|
+
`graph_path` as either `Path` or `str`, normalizes with
|
|
23
|
+
`Path(graph_path).expanduser().resolve()`, and preserves strict-mode defaults
|
|
24
|
+
(#197).
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Windows assurance portability** — open local-assurance inputs in binary
|
|
29
|
+
mode so CRLF files retain their measured byte length, use platform-neutral
|
|
30
|
+
byte and path fixtures, preserve POSIX permission assertions only where the
|
|
31
|
+
operating system provides those semantics, and fold CLI diagnostic
|
|
32
|
+
identifiers instead of replacing their final characters with an ellipsis
|
|
33
|
+
(#194).
|
|
34
|
+
- **Optional AI dependency guidance** — use one consistent message when AI
|
|
35
|
+
export dependencies are unavailable: `uv sync --extra ai` (#196).
|
|
36
|
+
|
|
10
37
|
## [1.8.1] - 2026-08-25
|
|
11
38
|
|
|
12
39
|
### 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) —
|
|
20
|
+
- [`CHANGELOG.md`](CHANGELOG.md) — release candidate **1.8.2**, latest published release **1.8.1**, 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
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: logseq-matryca-parser
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.2
|
|
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
|
|
@@ -323,6 +323,7 @@ Read the complete [release highlights](RELEASE_HIGHLIGHTS.md), the exhaustive
|
|
|
323
323
|
[changelog](CHANGELOG.md), or the signed artifacts on
|
|
324
324
|
[GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
|
|
325
325
|
|
|
326
|
+
- **v1.8.2 (release candidate)** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
|
|
326
327
|
- **v1.8.1** — Hardened deep-outline parsing, coherent incremental graph mutations, bounded assurance cleanup, and stable provenance for optional NLTK.
|
|
327
328
|
- **v1.8.0** — Added bounded privacy-safe local graph assurance, source-location contracts, and the first internal parser line-classification phase.
|
|
328
329
|
- **v1.7.1** — Added the runnable offline SYNAPSE RAG example and tightened release-note and optional-dependency security checks.
|
|
@@ -282,6 +282,7 @@ Read the complete [release highlights](RELEASE_HIGHLIGHTS.md), the exhaustive
|
|
|
282
282
|
[changelog](CHANGELOG.md), or the signed artifacts on
|
|
283
283
|
[GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
|
|
284
284
|
|
|
285
|
+
- **v1.8.2 (release candidate)** — Adds SHA-pinned hosted assurance, portable Windows local assurance, corrected cookbook recipes, consistent optional-AI guidance, and `Path | str` graph loading.
|
|
285
286
|
- **v1.8.1** — Hardened deep-outline parsing, coherent incremental graph mutations, bounded assurance cleanup, and stable provenance for optional NLTK.
|
|
286
287
|
- **v1.8.0** — Added bounded privacy-safe local graph assurance, source-location contracts, and the first internal parser line-classification phase.
|
|
287
288
|
- **v1.7.1** — Added the runnable offline SYNAPSE RAG example and tightened release-note and optional-dependency security checks.
|
|
@@ -5,6 +5,21 @@ For the exhaustive change history, see the [changelog](CHANGELOG.md). For
|
|
|
5
5
|
published artifacts and attestations, see
|
|
6
6
|
[GitHub Releases](https://github.com/MarcoPorcellato/logseq-matryca-parser/releases).
|
|
7
7
|
|
|
8
|
+
## v1.8.2 (release candidate)
|
|
9
|
+
|
|
10
|
+
Release candidate — strengthens the hosted assurance boundary, clarifies
|
|
11
|
+
integration guidance, and makes the graph loader easier to call. **No
|
|
12
|
+
intentional breaking changes** to stable package imports or CLI behavior. The
|
|
13
|
+
v1.8.2 tag, PyPI publication, GitHub Release, hashes, and attestations remain
|
|
14
|
+
pending the release workflow.
|
|
15
|
+
|
|
16
|
+
| Area | Change |
|
|
17
|
+
| :--- | :--- |
|
|
18
|
+
| **Hosted assurance** | Native GitHub-hosted quality, package, dependency, CodeQL, Linux, macOS, and Windows checks use reviewed SHA-pinned actions; Windows local-assurance inputs and fixtures are portable. |
|
|
19
|
+
| **Cookbook and LENS** | Corrected broken-block-reference and graph-visualization recipes show the expected CLI result, `Path` usage, and optional dependency boundary. |
|
|
20
|
+
| **Optional AI guidance** | Missing AI export dependencies now consistently direct users to `uv sync --extra ai`. |
|
|
21
|
+
| **Graph API** | `LogseqGraph.load_directory` accepts either `Path` or `str` while preserving existing strict-mode defaults. |
|
|
22
|
+
|
|
8
23
|
## v1.8.1
|
|
9
24
|
|
|
10
25
|
Patch release — hardens deep-outline parsing, coherent incremental graph
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported Versions
|
|
4
4
|
|
|
5
|
-
Security fixes are provided **only for the latest released version** on [PyPI](https://pypi.org/project/logseq-matryca-parser/).
|
|
5
|
+
Security fixes are provided **only for the latest released version** on [PyPI](https://pypi.org/project/logseq-matryca-parser/). Until the v1.8.2 tag workflow completes, that version remains v1.8.1.
|
|
6
6
|
|
|
7
7
|
| Version | Supported |
|
|
8
8
|
| ------- | --------- |
|
|
9
|
-
|
|
|
9
|
+
| 1.8.2 (release candidate; not published) | Pending publication |
|
|
10
|
+
| **1.8.1** (latest released) | Yes |
|
|
10
11
|
| 1.8.0 and older | No |
|
|
11
12
|
|
|
12
13
|
We recommend always running the current release and upgrading promptly when a security advisory is published.
|