Repository navigation
Releases: itpartypattaya/field-notes
Releases · itpartypattaya/field-notes
Release list
field-notes 2.0.1
Fixes from a full code review (Codex CLI, gpt-6.1-sol).
- Store lock is now an OS file lock (
fcntl.flock/msvcrt.locking): the OS releases it when
the owner exits, so a lock held by a live process is never broken by age. migrateremoves the legacy**Date:** · **Area:** · **Status:**line only right after the
first# Title; the same line inside a code block or elsewhere in the body is kept.
A file whose first line is---followed by spaces is treated as frontmatter and, if damaged, skipped.- Frontmatter parser reports unclosed quotes and lists instead of accepting them; backslash
escapes before a closing quote are handled ("C:\\" # comment). - Masking in
issue-draft: user names with spaces (C:\Users\First Last\…,/home/First Last/…)
and whole Claude project slugs (C--Users-<name>-…) are masked. - Secret patterns (shared by
issue-draftandlint): Telegram bot tokens ending in-,
ghr_/allgh*_tokens, GitLabglpat-and friends, lower-casebearer, Google API keys,
Stripesk_live_/rk_live_, JWTs. lint: dates must be exactlyYYYY-MM-DD(Python 3.11+fromisoformatalso accepts
20260101and week dates); unsupportedschema_versionis an error.search: short and technical terms (C++,C#,R,Go) are matched as whole words and no
longer dropped from the query.fn.sh:grepsearches the literal string (special characters escaped) and tells "no matches"
(exit 1) from a search error (exit 2);--root,--read-onlyand--jsonare honoured by the shell
commands too; without Pythoninit/newrefuse--read-only, validate the slug and never
overwrite a note created in parallel.root --jsonprints JSON in both the shell and Python paths.- Tests: 23 → 37, including a live two-process lock test and shell-wrapper tests.
🤖 Generated with Claude Code