logseq-matryca-parser 1.8.0__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.0 → 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.0 → 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.0 → logseq_matryca_parser-1.8.2}/.github/workflows/dependency-review.yml +2 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/workflows/parser-adversarial.yml +6 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/workflows/pypi_publish.yml +32 -24
- {logseq_matryca_parser-1.8.0 → 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.0 → logseq_matryca_parser-1.8.2}/.pre-commit-config.yaml +4 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/AGENTS.md +3 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/CHANGELOG.md +83 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/CONTRIBUTING.md +3 -2
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/PKG-INFO +17 -7
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/README.md +16 -6
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/RELEASE_HIGHLIGHTS.md +43 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/SECURITY.md +4 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/ARCHITECTURE.md +42 -11
- logseq_matryca_parser-1.8.2/docs/CI_ASSURANCE.md +157 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/CLEAN_CODE_ARCHITECTURE.md +24 -5
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/CODEQL.md +7 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/COOKBOOK.md +41 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/LSDOC_REFERENCE_STUDY_AND_EXECUTION_PLAN_2026-08-16.md +151 -18
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/README.md +6 -4
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/RELEASE_PROCESS.md +4 -0
- logseq_matryca_parser-1.8.2/docs/ROADMAP_2026-2027.md +121 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/index.md +0 -18
- logseq_matryca_parser-1.8.2/docs/goals/LSDOC_PARSER_ASSURANCE_GOAL.md +162 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/index.md +7 -5
- logseq_matryca_parser-1.8.2/docs/internal/ASSURANCE_TERRA_HANDOFF_2026-08-21.md +181 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/internal/M5_LOCAL_GRAPH_ASSURANCE_REVIEW_HANDOFF_2026-08-18.md +4 -0
- 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.0 → logseq_matryca_parser-1.8.2}/docs/log.md +135 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/maintained.toml +2 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/quality/README.md +4 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/API_STABILITY.md +3 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/DEPENDENCY_LICENSE_POLICY.md +12 -3
- logseq_matryca_parser-1.8.2/docs/reference/PERFORMANCE_EVIDENCE.md +78 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/index.md +1 -18
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-20-parser-lexical-state.md +524 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-20-runtime-evidence-harness.md +613 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-21-graph-mutation-coherence.md +931 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-21-post-m9-reconciliation.md +145 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/plans/2026-08-24-local-assurance-coverage.md +167 -0
- 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-20-parser-lexical-state-design.md +152 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/specs/2026-08-21-graph-mutation-coherence-design.md +303 -0
- logseq_matryca_parser-1.8.2/docs/superpowers/specs/2026-08-24-meaningful-test-coverage-design.md +152 -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.0 → logseq_matryca_parser-1.8.2}/metrics/index.json +1 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/metrics/quarters/2026-Q3.json +4509 -2269
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/pyproject.toml +7 -3
- logseq_matryca_parser-1.8.2/release-bundle/RELEASE_NOTES.md +26 -0
- logseq_matryca_parser-1.8.2/src/logseq_matryca_parser/_lexical_state.py +68 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/_version.py +1 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/agent_writer.py +24 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/diagnostics.py +11 -2
- logseq_matryca_parser-1.8.2/src/logseq_matryca_parser/graph.py +1449 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic_commands.py +2 -2
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/local_graph_assurance.py +5 -2
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logos_parser.py +146 -101
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/synapse.py +4 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/invariants.py +8 -6
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/work_growth.py +7 -20
- logseq_matryca_parser-1.8.2/tests/performance/__init__.py +1 -0
- logseq_matryca_parser-1.8.2/tests/performance/runtime_evidence.py +326 -0
- logseq_matryca_parser-1.8.2/tests/performance/synthetic_vault.py +110 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_agent_writer.py +67 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_check_wheel_contract.py +1 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_graph.py +105 -0
- logseq_matryca_parser-1.8.2/tests/test_graph_concurrency.py +916 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_kinetic.py +3 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_lens.py +18 -0
- logseq_matryca_parser-1.8.2/tests/test_local_graph_assurance.py +720 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_logos_parser.py +154 -0
- logseq_matryca_parser-1.8.2/tests/test_module_entrypoint.py +17 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_parser_deep_refresh.py +60 -1
- logseq_matryca_parser-1.8.2/tests/test_parser_lexical_state.py +47 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_parser_work_growth.py +20 -2
- logseq_matryca_parser-1.8.2/tests/test_performance_evidence_docs.py +17 -0
- logseq_matryca_parser-1.8.2/tests/test_performance_synthetic_vault.py +83 -0
- {logseq_matryca_parser-1.8.0 → 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.2/tests/test_runtime_evidence.py +167 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_synapse.py +7 -3
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_writer_security.py +4 -2
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/typing_samples/public_api.py +4 -1
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/uv.lock +7 -3
- logseq_matryca_parser-1.8.2/zizmor.yml +3 -0
- logseq_matryca_parser-1.8.0/.github/workflows/ci.yml +0 -80
- logseq_matryca_parser-1.8.0/docs/ROADMAP_2026-2027.md +0 -80
- logseq_matryca_parser-1.8.0/docs/goals/LSDOC_PARSER_ASSURANCE_GOAL.md +0 -101
- logseq_matryca_parser-1.8.0/release-bundle/RELEASE_NOTES.md +0 -94
- logseq_matryca_parser-1.8.0/src/logseq_matryca_parser/graph.py +0 -1018
- logseq_matryca_parser-1.8.0/tests/test_local_graph_assurance.py +0 -233
- logseq_matryca_parser-1.8.0/tests/test_quality_gate_contract.py +0 -147
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.cursorignore +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.cursorrules +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.gitattributes +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/CODEOWNERS +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/FUNDING.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/clean_architecture.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/clean_arch_issue_numbers.txt +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/copilot-instructions.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/dependency-license-overrides.toml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/labels.yml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/scripts/create_clean_arch_issues.sh +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.github/scripts/create_good_first_issues.sh +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.gitignore +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/.repomixignore +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/CITATION.cff +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/CLAUDE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/CODE_OF_CONDUCT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/GOVERNANCE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/LICENSE +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/MAINTAINERS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/Makefile +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/NOTICE +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/SUPPORT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/claude-skill-logseq-read/SKILL.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/claude-skill-logseq-read/scripts/parse_logseq.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/AAIF_ALIGNMENT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/AI_CONTRIBUTION_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/BUG_HUNT_REPORT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/DOCUMENTATION_SYSTEM.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/GOOD_FIRST_ISSUES.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/ISSUE_TRIAGE_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/README_READABILITY_REPORT_2026-08-08.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_GOVERNANCE_AAIF_STUDY_2026-08-19.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_IMPROVEMENT_STUDY_2026-07-28.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/REPOSITORY_STELLAR_ROADMAP_2026-08-06.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0001-PROTOCOL_ADAPTER_BOUNDARY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0002-OFFICIAL-OKF-V02-MIGRATION-GATE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-0003-AAIF-SUBMISSION-GATE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-001-external-oracle-boundary.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/decisions/ADR-002-local-graph-assurance-boundary.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/ARCHITECTURE_BLUEPRINT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/CODE_SCAFFOLD.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_ASSET_RESOLUTION_SPEC.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_DATASCRIPT_MAPPING.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/LOGSEQ_TEMPORAL_ONTOLOGY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/OFFICIAL_MLDOC_SPECS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/README.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/design-docs/REFERENCE_SPEC.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/error_log.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/internal/LOCAL_CODE_STUDY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/internal/M1A_CORRECTIVE_HARDENING_RESTART_HANDOFF_2026-08-16.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/internal/STATIC_ANALYSIS_POLICY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/logseq_ast_primer.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/quality/CLEAN_ARCH_BACKLOG.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/quality/GITHUB_CLEAN_ARCH_ROADMAP.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/quality/ISSUE_RECONCILIATION_2026-08-06.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/quality/ISSUE_TRIAGE_2026-07.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/AGENT_ACTION_CONTRACT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/CONFORMANCE_SUPPORT_MATRIX.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/DIAGNOSTICS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/FILESYSTEM_SAFETY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/reference/LOCAL_GRAPH_ASSURANCE.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/rfc/OLLAMA_RAG.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/rfc/SOURCE_LOCATION_RFC.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_AGENT_NATIVE_XRAY.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_CLI_HYDRATION_AND_ENRICHMENT.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_CONTEXT_SYNTHESIS_AND_SCOPING.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_EMBED_EXPANSION_AND_FLUENT_QUERIES.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_GRAPH_RAG_SEMANTICS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_HEADLESS_WRITER.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_INCREMENTAL_WATCHER.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_INLINE_SHIELD_AND_NAMESPACES.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_OBSIDIAN_ADAPTER.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_ROBUSTNESS_AND_SOFT_BREAKS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_TOML_FIX_AND_PYPI_DISTRIBUTION.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/roadmaps/ROADMAP_UUID_AND_GRAPH_SUPERPOWERS.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/docs/security/DAILY_METRICS_THREAT_MODEL.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/examples/demo_logseq_journal.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/examples/run_demo.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/examples/run_synapse_rag.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/legacy/local_digestor.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/lib/bindings/utils.js +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/lib/tom-select/tom-select.complete.min.js +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/lib/tom-select/tom-select.css +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/lib/vis-9.1.2/vis-network.css +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/lib/vis-9.1.2/vis-network.min.js +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/llms.txt +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/metrics/quarters/2026-Q2.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/repomix-output-parser.xml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/__init__.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/check_documentation.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/check_release_contract.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/check_vendor_free_docs.sh +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/check_wheel_contract.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/debug_pre_release.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/extract_changelog.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/generate_supply_chain_evidence.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/scripts/update_compat_snapshots.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/.gitignore +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/NOTICE +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/__init__.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/__main__.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/agent_press.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/exceptions.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/forge.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/kinetic_export.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/lens.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logos_core.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/logseq_paths.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/py.typed +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/pyproject.toml +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/src/logseq_matryca_parser/synapse_embed.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/__init__.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/deep-refresh-regression.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/hierarchy-identity.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/manifest.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/pages/nested-title-entrypoint.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/properties-and-links.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-deep-refresh.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-hierarchy-identity.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-nested-entrypoint.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-properties-links-assets.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-softbreak-logbook.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/snapshots/m1a-task-timing.exact.json +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/soft-breaks-properties-logbook.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/fixtures/compat/v1/tasks-priority-time.md +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/__init__.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/adversarial.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/corpus.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/parser_assurance/projection.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_agent_press.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_archive_repository_metrics.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_check_documentation.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_check_release_contract.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_compat_corpus.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_demo_example.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_diagnostics.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_exceptions.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_extract_changelog.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_forge.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_generate_supply_chain_evidence.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_graph_collisions.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_layer_boundary.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_llms_txt_contract.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_logseq_markdown.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_logseq_paths.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_package_version.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_parser_adversarial.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_pre_release_roundtrip.py +0 -0
- {logseq_matryca_parser-1.8.0 → logseq_matryca_parser-1.8.2}/tests/test_synapse_example.py +0 -0
|
@@ -5,9 +5,13 @@ updates:
|
|
|
5
5
|
directory: "/"
|
|
6
6
|
schedule:
|
|
7
7
|
interval: "weekly"
|
|
8
|
+
cooldown:
|
|
9
|
+
default-days: 7
|
|
8
10
|
|
|
9
11
|
# Keep GitHub Actions current (reads .github/workflows/ci.yml).
|
|
10
12
|
- package-ecosystem: "github-actions"
|
|
11
13
|
directory: "/"
|
|
12
14
|
schedule:
|
|
13
15
|
interval: "weekly"
|
|
16
|
+
cooldown:
|
|
17
|
+
default-days: 7
|
|
@@ -0,0 +1,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.0 → 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.0 → 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.0 → 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.0 → 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,89 @@ 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
|
+
|
|
37
|
+
## [1.8.1] - 2026-08-25
|
|
38
|
+
|
|
39
|
+
### Security
|
|
40
|
+
|
|
41
|
+
- **Stable NLTK supply-chain source (#186)** — the optional AI and development
|
|
42
|
+
dependency graph now constrains NLTK to the patched PyPI release line at
|
|
43
|
+
`>=3.10.3`, replacing the mutable `v3.10.0-rc1` VCS tag declaration. The
|
|
44
|
+
lightweight base installation remains unchanged.
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- **Reproducible runtime evidence foundation (#111)** — add a deterministic,
|
|
49
|
+
offline synthetic-vault generator and a source-free measurement runner for
|
|
50
|
+
parser, cold-load, reload, search, and optional SYNAPSE scenarios. The runner
|
|
51
|
+
records semantic validity and bounded runtime observations outside the
|
|
52
|
+
default CI gate. It establishes a measurement protocol, not vault-scale
|
|
53
|
+
budgets or a universal performance claim; #111 remains open.
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- **Private lexical-state extraction (#108 M9)** — move YAML, code, query,
|
|
58
|
+
drawer, frontmatter, and block-property eligibility transitions into a
|
|
59
|
+
private standard-library-only state object. `StackMachineParser.parse()`
|
|
60
|
+
retains line classification, reduction, AST construction, identities,
|
|
61
|
+
semantic enrichment, and public behavior. The broader #108 epic remains
|
|
62
|
+
open.
|
|
63
|
+
|
|
64
|
+
### Fixed
|
|
65
|
+
|
|
66
|
+
- **Coherent incremental graph mutations (#103)** — reloads, deletions, and
|
|
67
|
+
filesystem moves now publish page routing, node and backlink registries, and
|
|
68
|
+
collision diagnostics as one coherent graph snapshot. Conflicting title or
|
|
69
|
+
alias participants can recover deterministically, bounded writes serialize
|
|
70
|
+
their source read and reload transaction, and watcher callbacks observe the
|
|
71
|
+
published state in order. Stable public APIs remain unchanged.
|
|
72
|
+
- **Pathological nested outlines (#87)** — parse and file-entrypoint traversal
|
|
73
|
+
now remain iterative for a 1024-level valid outline, while parser-owned tree
|
|
74
|
+
construction avoids quadratic immutable-ancestor copies. Derived metadata is
|
|
75
|
+
refreshed once after tree construction instead of repeatedly across mutable
|
|
76
|
+
soft-break ancestors, and parser registries are rebuilt from the exact final
|
|
77
|
+
nodes returned by parse and file entry points. Strict reference validation is
|
|
78
|
+
confined to the current page. Tree order, parent and left relationships,
|
|
79
|
+
source paths, semantic snapshots, and the stable public API are preserved.
|
|
80
|
+
Deterministic tests bound refresh growth; local timing observations remain
|
|
81
|
+
diagnostic only and do not add a vault-scale performance claim.
|
|
82
|
+
- **Bounded local-assurance timeout cleanup (#188)** — a timed-out isolated
|
|
83
|
+
assurance worker is terminated and joined before its result queue is closed,
|
|
84
|
+
preventing queue-thread cleanup from extending the bounded failure path.
|
|
85
|
+
|
|
86
|
+
### Tests
|
|
87
|
+
|
|
88
|
+
- Expand privacy-safe local-assurance regression coverage across traversal and
|
|
89
|
+
byte limits, guarded reads, parser aggregation, report validation, denied
|
|
90
|
+
network entry points, worker lifecycle, and failure cleanup without exposing
|
|
91
|
+
vault content or weakening the repository coverage floor.
|
|
92
|
+
|
|
10
93
|
## [1.8.0] - 2026-08-20
|
|
11
94
|
|
|
12
95
|
### Tests
|
|
@@ -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
|
|