Repository navigation
fix(memory): read flow lists in the family memory's frontmatter as lists - #234
Merged
Merged
Conversation
arthware-dev
force-pushed
the
feature/0.5.0-beta.1
branch
from
October 16, 2026 12:36
8b3033a to
2d08a31
Compare
arthware-dev
force-pushed
the
fix/frontmatter-one-parser
branch
from
October 16, 2026 12:56
0c8316d to
a1e3e7f
Compare
arthware-dev
force-pushed
the
feature/0.5.0-beta.1
branch
from
October 16, 2026 15:07
2d08a31 to
489222f
Compare
added 3 commits
October 16, 2026 17:07
The frontmatter parser read `tags: [a, b]` and `tags: []` as the strings "[a, b]" and "[]", so a hand-edited page lost its tags and persons to every reader. It also accepted unquoted values that YAML, and so the wiki's Quartz build, reads differently or refuses, such as `title: Notes: Admin`. - A one-line flow list of scalars is read as a list of strings. Writers still emit block lists. - Flow maps, nested lists, anchors, aliases, block scalars, unquoted `: ` and ` #`, and unclosed quotes raise `FrontmatterError`. - Double-quoted values resolve their escapes, so a title `dump` writes with a quote in it reads back unchanged. Refs: #192
A correction to a capture and a reply to an email thread both rewrite the entry from its frontmatter. Both read it with their own parser: the capture with a hand-rolled one that skipped lines it did not understand, the email thread with PyYAML, which fell back to an empty header and rewrote the thread without its type and title. Both now read through the shared frontmatter parser. When the header does not parse, the entry is left as it is and the archivist log names the file: `frontmatter does not parse (...), reprocess skipped` for a capture, `email not folded` for a thread. Refs: #192
Search, the person and correspondent loaders, the wiki, the curator and the diary read a page's frontmatter in three different ways: the shared parser, silently dropping a header it refused, and PyYAML in the diary and in the wiki's publish gate. A hand edit could read one way in search and another in the wiki. All of them now read through the shared parser. A page whose header does not parse is read without it and named on stderr, which shows up in `stack memory search` output, the archivist's and curator's container logs, and the wiki and diary command output. The wiki's publish gate uses the same parser, which refuses every unquoted value Quartz's YAML parser would read differently. Refs: #192
arthware-dev
force-pushed
the
fix/frontmatter-one-parser
branch
from
October 16, 2026 15:07
a1e3e7f to
0b29c9e
Compare
arthware-dev
added a commit
that referenced
this pull request
Oct 17, 2026
…sts (#234) ## Summary - The frontmatter parser read `tags: [a, b]` and `tags: []` as strings, so a hand-edited page lost its tags and persons. A one-line flow list now reads as a list; flow maps, anchors, block scalars and unquoted values YAML reads differently (`title: Notes: Admin`) raise `FrontmatterError`. - Every reader of a family memory page's frontmatter (search, person and correspondent loaders, wiki and its publish gate, curator, diary, capture correction, email thread fold) now goes through `stack.frontmatter`. PyYAML and the hand-rolled parser in the capture pipeline are gone from these paths. - A page whose frontmatter does not parse is no longer guessed at: search reads it without its header, a correction or email fold leaves the entry as it is, and the file is named in the log. Refs: #192
arthware-dev
added a commit
that referenced
this pull request
Oct 20, 2026
…sts (#234) ## Summary - The frontmatter parser read `tags: [a, b]` and `tags: []` as strings, so a hand-edited page lost its tags and persons. A one-line flow list now reads as a list; flow maps, anchors, block scalars and unquoted values YAML reads differently (`title: Notes: Admin`) raise `FrontmatterError`. - Every reader of a family memory page's frontmatter (search, person and correspondent loaders, wiki and its publish gate, curator, diary, capture correction, email thread fold) now goes through `stack.frontmatter`. PyYAML and the hand-rolled parser in the capture pipeline are gone from these paths. - A page whose frontmatter does not parse is no longer guessed at: search reads it without its header, a correction or email fold leaves the entry as it is, and the file is named in the log. Refs: #192
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tags: [a, b]andtags: []as strings, so a hand-edited page lost its tags and persons. A one-line flow list now reads as a list; flow maps, anchors, block scalars and unquoted values YAML reads differently (title: Notes: Admin) raiseFrontmatterError.stack.frontmatter. PyYAML and the hand-rolled parser in the capture pipeline are gone from these paths.Refs: #192