| Age | Commit message (Expand) | Author | Files | Lines |
| 2026-07-10 | feat: regex introspection API — explain, verbose export, ASCII + SVG visual... | Bobby | 58 | -366/+6010 |
| 2026-07-10 | chore: apply ruff format and drop unused import in new context tests | natsuoto | 1 | -7/+2 |
| 2026-07-10 | test: cover diagnose fallback branches and caller-context position fallbacks | natsuoto | 2 | -0/+217 |
| 2026-07-10 | ci: install graphviz system package for SVG-rendering tests | natsuoto | 2 | -0/+4 |
| 2026-07-10 | chore: declare graphviz optional dependency and add to dev group | natsuoto | 2 | -0/+22 |
| 2026-07-10 | chore: apply ruff lint and format fixes | natsuoto | 13 | -147/+66 |
| 2026-07-10 | docs: strip design narrative from module docstrings, keep API contract | natsuoto | 13 | -80/+11 |
| 2026-07-10 | test(builder): extend Hypothesis property test to cover groups, captures, sub... | natsuoto | 1 | -29/+182 |
| 2026-07-10 | feat(result): Regex wrapper with AST, delegation, and introspection API (#133... | natsuoto | 15 | -17/+4145 |
| 2026-07-10 | feat(builder): lazy Regex compile cache and __eq__/__hash__ diagnose unfinish... | natsuoto | 5 | -32/+316 |
| 2026-07-10 | feat(builder): capture caller source location on chain methods | natsuoto | 4 | -59/+128 |
| 2026-07-10 | feat(errors): annotated error messages with caller-context pointers | natsuoto | 14 | -149/+1071 |
| 2026-07-01 | feat!: Regex result wrapper on .to_regex(), plus flag kwargs at the terminal ... | Bobby | 9 | -8/+311 |
| 2026-07-01 | fix(ci): skip debug=True regression test on PyPy (upstream IndexError bug) | natsuoto | 1 | -0/+9 |
| 2026-07-01 | fix(ci): reorder edify re-exports; drop pypy-fragile capsys check on debug=True | natsuoto | 2 | -5/+4 |
| 2026-07-01 | feat: terminal flag kwargs on .to_regex(ignore_case=..., multiline=..., dotal... | natsuoto | 2 | -2/+89 |
| 2026-07-01 | feat!: to_regex() returns the Regex wrapper instead of raw re.Pattern | natsuoto | 8 | -16/+22 |
| 2026-07-01 | feat: Regex result wrapper class composing over re.Pattern | natsuoto | 3 | -0/+202 |
| 2026-07-01 | fix!: quantifier validation — dangling and stacked quantifiers raise; Hypot... | 夏音 / natsuoto.exe | 7 | -1/+238 |
| 2026-07-01 | test: Hypothesis property assertion — no chain silently drops a quantifier | natsuoto | 3 | -0/+97 |
| 2026-07-01 | chore: consolidate quantifier error tests into tests/errors/quantifier.test.py | natsuoto | 3 | -47/+41 |
| 2026-07-01 | fix!: stacked quantifiers raise StackedQuantifierError at chain time | natsuoto | 2 | -1/+51 |
| 2026-07-01 | fix!: dangling quantifier raises DanglingQuantifierError at emit | natsuoto | 3 | -0/+96 |
| 2026-07-01 | feat: builder ergonomics — __repr__, __eq__/__hash__, .fork()/.copy() (#268) | 夏音 / natsuoto.exe | 4 | -3/+183 |
| 2026-07-01 | test: cover the __repr__ fallback for BuilderCore subclasses without Terminal... | natsuoto | 1 | -0/+9 |
| 2026-07-01 | feat: .fork() and .copy() explicit aliases for branch construction | natsuoto | 3 | -1/+61 |
| 2026-07-01 | feat!: __eq__ and __hash__ value equality on the builder | natsuoto | 2 | -2/+63 |
| 2026-07-01 | feat: __repr__ shows the pattern-so-far on the builder | natsuoto | 2 | -3/+53 |
| 2026-07-01 | feat: convenience char classes .letter() .uppercase() .lowercase() .alphanume... | 夏音 / natsuoto.exe | 9 | -1/+143 |
| 2026-07-01 | feat: convenience char classes .letter() .uppercase() .lowercase() .alphanume... | natsuoto | 9 | -1/+143 |
| 2026-07-01 | feat: varargs .one_of() and .any_of(*literals) chain-level shorthand (#266) | 夏音 / natsuoto.exe | 4 | -13/+172 |
| 2026-07-01 | feat: varargs .one_of() and .any_of(*literals) chain-level shorthand | natsuoto | 4 | -13/+172 |
| 2026-07-01 | feat: .at_most(n) quantifier closes the symmetry gap with at_least/exactly/be... | 夏音 / natsuoto.exe | 11 | -0/+70 |
| 2026-07-01 | feat: .at_most(n) quantifier closes the symmetry gap with at_least/exactly/be... | natsuoto | 11 | -0/+70 |
| 2026-07-01 | feat: .test() boolean shortcut on Pattern and RegexBuilder (#264) | 夏音 / natsuoto.exe | 2 | -2/+41 |
| 2026-07-01 | feat: .test() boolean shortcut on Pattern and RegexBuilder | natsuoto | 2 | -2/+41 |
| 2026-07-01 | feat: humre-style functional API — operators, constants, factories, matcher... | 夏音 / natsuoto.exe | 28 | -11/+1312 |
| 2026-07-01 | feat: humre-style functional API — operators, constants, factories, matcher | natsuoto | 28 | -11/+1312 |
| 2026-07-01 | feat: add Pattern class and .use() composition (#261) | Bobby | 8 | -23/+178 |
| 2026-07-01 | feat: add Pattern class and .use() composition (closes #125, #126) | natsuoto | 8 | -23/+178 |
| 2026-06-30 | chore!: package reorg + uv/ruff/pytest/hatchling toolchain + Python 3.11 floo... | Bobby | 144 | -2308/+5890 |
| 2026-06-30 | chore: gitignore edify/version.py (hatch-vcs build artefact) | natsuoto | 1 | -0/+1 |
| 2026-06-30 | fix(ci): untrack hatch-vcs-generated edify/version.py | natsuoto | 1 | -24/+0 |
| 2026-06-30 | fix(ci): cover version-fallback branch deterministically via extracted helper | natsuoto | 2 | -12/+15 |
| 2026-06-30 | fix(ci): rewrite coverage.yml on uv + codecov-action (closes #260) | natsuoto | 1 | -18/+16 |
| 2026-06-30 | fix(ci): drop hatch-vcs version-file generation so check stays clean | natsuoto | 1 | -4/+0 |
| 2026-06-30 | chore: drop .editorconfig — replaced by mixed-line-ending hook + ruff format | natsuoto | 2 | -20/+2 |
| 2026-06-26 | chore!: package reorg, toolchain migration to uv+ruff+pytest+hatchling, Pytho... | natsuoto | 143 | -2270/+5896 |
| 2026-06-25 | chore: gitignore design_docs/ working directory (#66) | 夏音 / natsuoto.exe | 1 | -0/+3 |
| 2026-06-25 | feat: add design_docs to .gitignore | natsuoto | 1 | -0/+3 |