Skip to content

Commit 19fa94a

Browse files
chore: release 1.4.2
1 parent 28de99f commit 19fa94a

10 files changed

Lines changed: 44 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
### Fixed
11-
12-
- **agent-write**`append_child_to_node` normalizes source files missing a trailing newline before line splice, preventing new bullets from being appended onto the last line ([#72](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/72)).
13-
- **SYNAPSE** — cyclic `{{embed [[Page]]}}` chains no longer duplicate parent literal text; page embed expansion tracks an immutable host-page chain seeded from `to_context_enriched_chunks` ([#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65)).
14-
- **agent-write**`SessionAliasRegistry.load_from_disk` tolerates empty, malformed, or legacy-wrapped X-Ray JSON; KINETIC exits with a clear message instead of a traceback ([#60](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/60)).
15-
1610
### Added
1711

1812
- **Contributor issues (wave 3)** — Six new issues from local code study ([#59](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/59)[#64](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/64)): LENS ghost wikilink nodes, corrupt X-Ray state handling, `agent_write` assert guard, and paired good-first tests.
1913
- **Contributor issues (wave 4)** — Seven issues from Clean Architecture code study ([#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65)[#71](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/71)): SYNAPSE cyclic embed duplication, unresolved embed semantics, kinetic dead code, graph watcher DIP, English DX messages, OCP embed refactor, and parametrized SYNAPSE tests. Agent rule: [`.cursor/rules/07-clean-architecture-audit.mdc`](.cursor/rules/07-clean-architecture-audit.mdc).
2014
- **Contributor issues (wave 5)**[#72](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/72) / [#73](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/73): `append_child_to_node` corrupts Markdown when the source file lacks a trailing newline (agent-write data loss).
2115

22-
- **Test coverage (wave 2)** — Community contribution ([#58](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/58), maintainer #43): **65** new pytest cases (**443** total) for `detect_tab_size_from_markdown`, graph link/backlink helpers, SYNAPSE embedding strip + metadata schema, FORGE Markdown/JSON visitors, LENS node classification, `extract_changelog` CLI, `LogseqConfigReader` timestamps, and KINETIC `agent-write` validation errors. Closes [#20](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/20), [#43](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/43)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52).
16+
## [1.4.2] - 2026-06-29
17+
18+
### Fixed
19+
20+
- **agent-write**`append_child_to_node` normalizes source files missing a trailing newline before line splice, preventing new bullets from being appended onto the last line ([#72](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/72), [#74](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/74)).
21+
- **SYNAPSE** — cyclic `{{embed [[Page]]}}` chains no longer duplicate parent literal text; page embed expansion tracks an immutable host-page chain seeded from `to_context_enriched_chunks` ([#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65), [#75](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/75)).
22+
- **agent-write**`SessionAliasRegistry.load_from_disk` tolerates empty, malformed, or legacy-wrapped X-Ray JSON; KINETIC exits with a clear message instead of a traceback ([#60](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/60), [#76](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/76)).
23+
24+
### Added
25+
26+
- **Test coverage (wave 2)** — Community contribution ([#58](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/58), maintainer #43): **65** new pytest cases for `detect_tab_size_from_markdown`, graph link/backlink helpers, SYNAPSE embedding strip + metadata schema, FORGE Markdown/JSON visitors, LENS node classification, `extract_changelog` CLI, `LogseqConfigReader` timestamps, and KINETIC `agent-write` validation errors. Closes [#20](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/20), [#43](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/43)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52).
27+
- **Regression tests** — Seven new cases for newline splice, cyclic page embed, and malformed X-Ray state (issues [#73](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/73), [#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65), [#60](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/60)); suite total **450** pytest.
28+
29+
### Changed
30+
31+
- **Contributor docs**[`README.md`](README.md), [`docs/README.md`](docs/README.md), [`CONTRIBUTING.md`](CONTRIBUTING.md), [`SECURITY.md`](SECURITY.md), and [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) harmonized for **v1.4.2** (test count, supported versions, agent-write / SYNAPSE behavior notes).
2332

2433
## [1.4.1] - 2026-06-24
2534

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ User-facing behavior is documented in:
1515
- [`README.md`](README.md) — overview, quickstart, and feature matrix
1616
- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — LOGOS, SYNAPSE, `LogseqGraph`, agents, and data flow
1717
- [`docs/logseq_ast_primer.md`](docs/logseq_ast_primer.md) — Logseq Spatial Markdown domain rules
18-
- [`CHANGELOG.md`](CHANGELOG.md) — shipped releases (current: **1.4.1**) and **Unreleased** changes (Keep a Changelog)
18+
- [`CHANGELOG.md`](CHANGELOG.md) — shipped releases (current: **1.4.2**) and **Unreleased** changes (Keep a Changelog)
1919
- [`docs/RELEASE_PROCESS.md`](docs/RELEASE_PROCESS.md) — version bump, tag, and PyPI publish checklist
2020
- [`docs/CODEQL.md`](docs/CODEQL.md) — CodeQL default setup (no custom `codeql.yml`)
2121
- [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md) — curated starter tasks for new contributors
@@ -124,7 +124,7 @@ CI runs the same commands as your local environment: `uv sync --all-extras`, the
124124
make all
125125
```
126126

127-
As of **v1.4.1+**, `make test` runs **443** pytest cases with **≥80%** line coverage on `src/logseq_matryca_parser` (currently ~**90%**). New contributors should mirror patterns in [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md) and the module map in that file’s **Test suite** section.
127+
As of **v1.4.2**, `make test` runs **450** pytest cases with **≥80%** line coverage on `src/logseq_matryca_parser` (currently ~**91%**). New contributors should mirror patterns in [`docs/GOOD_FIRST_ISSUES.md`](docs/GOOD_FIRST_ISSUES.md) and the module map in that file’s **Test suite** section.
128128

129129
Or run each step individually:
130130

README.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[![Status: Stable](https://img.shields.io/badge/Status-Stable-22c55e.svg?style=flat-square)](#)
1313
![Origin: Matryca.ai](https://img.shields.io/badge/Origin-Matryca.ai-gold?style=for-the-badge)
1414

15-
**v1.4.1+**Test-hardening: **443 tests** (wave 1 + wave 2), community coverage for parser helpers, CLI agents, FORGE visitors, graph/synapse/lens helpers ([#20](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/20), [#43](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/43)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52)) — no production API changes (see [CHANGELOG](CHANGELOG.md)).
15+
**v1.4.2**Bugfix patch: agent-write splice safety, SYNAPSE cyclic embed truncation, resilient X-Ray state reload ([#72](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/72), [#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65), [#60](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/60)). **450 tests** (wave 1 + wave 2 + regression suite). See [CHANGELOG](CHANGELOG.md).
1616

1717
> *Turning a forest of local plain-text files into a unified semantic powerhouse.*
1818
@@ -106,6 +106,18 @@ Logseq Matryca Parser is a deterministic **Stack-Machine engine** that acts as t
106106

107107
---
108108

109+
## ⚡ Release highlights (v1.4.2)
110+
111+
Patch release — agent-write and SYNAPSE correctness fixes. **No intentional breaking changes** to public APIs.
112+
113+
| Area | Change |
114+
| :--- | :--- |
115+
| **agent-write** | Headless splice normalizes files missing a final newline; corrupt `.matryca_xray_state.json` yields a controlled CLI exit ([#72](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/72), [#60](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/60)). |
116+
| **SYNAPSE RAG** | Cyclic `{{embed [[Page]]}}` chains truncate at the re-entrant edge without duplicating parent literal text ([#65](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/65)). |
117+
| **Test suite** | **450** pytest cases (**+72** vs v1.4.1): wave 2 community coverage ([#58](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/58)) plus regression tests for the three fixes. |
118+
119+
---
120+
109121
## ⚡ Release highlights (v1.4.1)
110122

111123
Patch release — contributor test coverage and onboarding refresh. **No intentional changes** to parser, graph, or CLI runtime behavior.
@@ -332,7 +344,7 @@ Marker syntax (`[#A]`, `SCHEDULED: <...>`, `DEADLINE: <...>`) is stripped from `
332344
## 🛠️ Quickstart
333345

334346
```bash
335-
# Install from PyPI (latest: v1.4.1)
347+
# Install from PyPI (latest: v1.4.2)
336348
uv pip install logseq-matryca-parser
337349

338350
# Optional: filesystem watcher for live incremental graph updates

SECURITY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Security fixes are provided **only for the latest released version** on [PyPI](h
66

77
| Version | Supported |
88
| ------- | --------- |
9-
| **1.4.1** (latest) | Yes |
10-
| 1.4.0 and older | No |
9+
| **1.4.2** (latest) | Yes |
10+
| 1.4.1 and older | No |
1111

1212
We recommend always running the current release and upgrading promptly when a security advisory is published.
1313

docs/ARCHITECTURE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -557,11 +557,11 @@ Recursive and character-budget chunkers assume **approximately flat prose**. Log
557557
| :--- | :--- |
558558
| [`logseq_ast_primer.md`](logseq_ast_primer.md) | Before touching parser or serialization behavior |
559559
| [`COOKBOOK.md`](COOKBOOK.md) | Integration examples (Synapse, `LogseqGraph`, watcher) |
560-
| [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) | Picking a first PR ([#19](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/19)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52)); wave 1 tests landed in **v1.4.1** |
560+
| [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) | Picking a first PR ([#19](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/19)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52)); wave 1 tests landed in **v1.4.1**, wave 2 + bugfix regressions in **v1.4.2** |
561561
| [`README.md`](README.md) | Project overview and quickstart |
562-
| [`../CONTRIBUTING.md`](../CONTRIBUTING.md) | `uv` setup, `make all` (**378** pytest, ~**90%** coverage), PR checklist |
562+
| [`../CONTRIBUTING.md`](../CONTRIBUTING.md) | `uv` setup, `make all` (**450** pytest, ~**91%** coverage), PR checklist |
563563
| [`design-docs/README.md`](design-docs/README.md) | Warning before using historical DDD blueprints |
564564

565-
### Quality gate (v1.4.1)
565+
### Quality gate (v1.4.2)
566566

567-
Local and CI parity: `uv sync --all-extras``make lint``make check``make test`. The test gate enforces **≥80%** coverage on `src/logseq_matryca_parser` with **378** pytest cases as of **v1.4.1** (community wave 1 via [#42](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/42)). Dedicated modules: `tests/test_exceptions.py`, `tests/test_extract_changelog.py` — see [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) § Test suite.
567+
Local and CI parity: `uv sync --all-extras``make lint``make check``make test`. The test gate enforces **≥80%** coverage on `src/logseq_matryca_parser` with **450** pytest cases as of **v1.4.2** (community wave 2 via [#58](https://github.com/MarcoPorcellato/logseq-matryca-parser/pull/58) plus agent-write / SYNAPSE regression tests). Dedicated modules: `tests/test_exceptions.py`, `tests/test_extract_changelog.py` — see [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) § Test suite.

docs/CODEQL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# CodeQL code scanning
22

3-
**Logseq Matryca Parser** (v1.4.1+) uses **GitHub CodeQL default setup** for static analysis (SAST) on Python.
3+
**Logseq Matryca Parser** (v1.4.2+) uses **GitHub CodeQL default setup** for static analysis (SAST) on Python.
44

55
## Why there is no `codeql.yml` workflow
66

docs/GOOD_FIRST_ISSUES.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ Wave 2 (GFI-17–GFI-26, GFI-02) is **complete** ([#58](https://github.com/Marco
9898

9999
---
100100

101-
## Test suite (v1.4.1+)
101+
## Test suite (v1.4.2+)
102102

103103
| Module | Test file |
104104
| :--- | :--- |
@@ -112,7 +112,7 @@ Wave 2 (GFI-17–GFI-26, GFI-02) is **complete** ([#58](https://github.com/Marco
112112
| Release helpers | `tests/test_extract_changelog.py`, `tests/test_package_version.py` |
113113
| Exceptions | `tests/test_exceptions.py` |
114114

115-
Run the full gate: `make all` (**443** pytest cases after wave 2).
115+
Run the full gate: `make all` (**450** pytest cases after wave 2 + bugfix regressions).
116116

117117
## Out of scope for a first PR
118118

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Use this page to find **active** documentation. Files under [`design-docs/`](des
88
| :--- | :--- | :--- |
99
| [`ARCHITECTURE.md`](ARCHITECTURE.md) | Contributors, integrators | LOGOS, SYNAPSE, `LogseqGraph`, agents, data flow |
1010
| [`logseq_ast_primer.md`](logseq_ast_primer.md) | Parser contributors | Logseq Spatial Markdown domain rules |
11-
| [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) | New contributors | Curated starter tasks ([#19](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/19)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52); wave 1 landed in **v1.4.1**) |
11+
| [`GOOD_FIRST_ISSUES.md`](GOOD_FIRST_ISSUES.md) | New contributors | Curated starter tasks ([#19](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/19)[#52](https://github.com/MarcoPorcellato/logseq-matryca-parser/issues/52); wave 1 in **v1.4.1**, wave 2 + bugfix tests in **v1.4.2**) |
1212
| [`COOKBOOK.md`](COOKBOOK.md) | Integrators | Copy-paste recipes (Synapse, graph query, watcher, agents, contributor test patterns) |
1313
| [`RELEASE_PROCESS.md`](RELEASE_PROCESS.md) | Maintainers | Semver, tag, and PyPI publish checklist |
1414
| [`CODEQL.md`](CODEQL.md) | Maintainers | CodeQL default setup notes |

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "logseq-matryca-parser"
7-
version = "1.4.1"
7+
version = "1.4.2"
88
description = "The Logos Protocol: Deterministic Logseq AST parsing for Matryca.ai."
99
readme = "README.md"
1010
requires-python = ">=3.12"

src/logseq_matryca_parser/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import sys
66

7-
__version__ = "1.4.1"
7+
__version__ = "1.4.2"
88

99
from .agent_press import SessionAliasRegistry
1010
from .agent_writer import LogseqConfigReader, logseq_agent_write

0 commit comments

Comments
 (0)