Skip to content

Fix Windows persistence (#11): require dol>=0.3.45#13

Merged
thorwhalen merged 2 commits into
mainfrom
claude/windows-stores-fix
Jun 23, 2026
Merged

Fix Windows persistence (#11): require dol>=0.3.45#13
thorwhalen merged 2 commits into
mainfrom
claude/windows-stores-fix

Conversation

@thorwhalen

Copy link
Copy Markdown
Owner

Fixes the pre-existing Windows Tests CI failure (#11): every dol.Jsons-backed
persistence test failed on Windows with KeyError: 'Key not in store: <key>.json'.

Root cause (in dol, not ek)

dol.filter_regex compiled its pattern with the path-oriented safe_compile,
which re.escapes its input on Windows. That turned filter_suffixes('.json')'s
regex (\.json)$ into a literal-string matcher, so no *.json key matched the
suffix filter behind dol.Jsons — and every write/read raised the KeyError.

Diagnosed via a temporary --tb=long -l -s CI probe (now reverted), which showed
the dir was created correctly but the filter rejected <key>.json.

Fix

Upstream in dol 0.3.45 (i2mint/dol#64): filter_regex now uses re.compile
(its contract is a regex), leaving the path-oriented safe_compile untouched.
POSIX behavior unchanged; dol's own Windows failures dropped 34→28 (6 fixed, 0
added). This PR just pins dol>=0.3.45 so ek's CI installs the fix, and
reverts the temporary diagnostic.

Verification

  • End-to-end: a dol.Jsons write+read+list works under a forced
    platform.system()=="Windows" with dol 0.3.45 (fails without it).
  • ek: 155 tests + doctests green locally, ruff clean.
  • The fix's authoritative check is ek's Windows Tests CI job on this PR.

Closes #11.

https://claude.ai/code/session_019bFtivmtdcXDoCQt3B9gGp

Temporary: capture the exact path resolution + dol key->path mapping on the
Windows runner to pinpoint the persistence-store failure. Reverted once fixed.

Claude-Session: https://claude.ai/code/session_019bFtivmtdcXDoCQt3B9gGp
…diagnostic

Root cause of the Windows persistence failures was a dol bug: filter_regex
compiled regexes with the path-oriented safe_compile, which re.escape's on
Windows, so filter_suffixes('.json') (behind dol.Jsons) matched nothing and every
store write raised KeyError: 'Key not in store: <key>.json'. Fixed upstream in
dol 0.3.45 (i2mint/dol#64); pin it here. Reverts the temporary --tb diagnostic.

Closes #11.

Claude-Session: https://claude.ai/code/session_019bFtivmtdcXDoCQt3B9gGp
@thorwhalen thorwhalen merged commit e1bf829 into main Jun 23, 2026
13 of 14 checks passed
@thorwhalen thorwhalen deleted the claude/windows-stores-fix branch June 23, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: Windows Tests fail — dol JSON store round-trip ('Key not in store: <name>.json')

1 participant