Tom Boucher
46967baae8
fix( #948 ): guard STATE.md no-op writes; preserve milestone_name/stopped_at ( closes #944 ) ( #952 )
...
* test(#948 ): add regression tests for no-op write guard and record-session auto-create (#944 )
Red before fix: 11/15 tests fail. Green after: 15/15.
Covers zero-match patch byte-identity, milestone_name preservation,
stopped_at frontmatter-wins, record-session auto-create fallback, and
adversarial fixtures (CRLF, empty body, non-canonical labels).
Also registers bug-948-state-noop-write-guard.test.cjs in the state
bucket of lint-test-file-count.allowlist.json.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* fix(#948 ): guard STATE.md no-op writes; preserve milestone_name/stopped_at (closes #944 )
Shared root cause: `readModifyWriteStateMd` wrote STATE.md unconditionally
even when the transform produced no change, and `syncStateFrontmatter`
re-derived frontmatter from the possibly-stale body on every write.
Three coordinated fixes in src/state.cts:
1. readModifyWriteStateMd: add no-op guard — when transform result ===
input content, skip the write entirely (no platformWriteSync, no
last_updated bump, no frontmatter re-derive). Fixes #948 zero-match
phantom write and the #944 phantom last_updated bump.
2. syncStateFrontmatter: extend existing-frontmatter preserve logic —
fall back to existingFm['milestone_name'] / existingFm['milestone']
when the derived value is the template placeholder 'milestone'
(getMilestoneInfo returns this literal when it cannot match the
version in ROADMAP.md); prefer existingFm['stopped_at'] /
existingFm['paused_at'] over a body-derived value (the frontmatter
value, written by the canonical record-session path, wins over stale
historical body lines). Mirrors the fallback already in cmdStateJson.
3. cmdStateRecordSession: when --stopped-at / --resume-file are supplied
but body labels are absent, DWIM auto-create a canonical ## Session
section (mirroring how add-decision / add-blocker / record-metric
auto-create their sections). Never return a silent recorded:false when
the caller supplied values.
SDK check: no sdk/src/state.ts exists in this repo (the comment in
cmdStateSnapshot references a sibling concern in the TypeScript SDK
codebase, which is a separate repo not present here).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* chore: add changeset for PR #952 (fix #948/#944)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* fix(#948 ): correct stopped_at preserve rule; adjust test for sync behaviour
The "always prefer frontmatter stopped_at" rule in syncStateFrontmatter
was too aggressive — it broke phase.complete which intentionally updates
stopped_at in the body and expects syncStateFrontmatter to pick it up.
The primary fix (no-op guard in readModifyWriteStateMd) already prevents
the stale-body-overwrites-frontmatter scenario from #948 : the file is not
written when the transform produces no change, so syncStateFrontmatter
never runs on a zero-match patch. The body-derived value can only win when
an actual write occurs, which means the body was legitimately updated.
Reverted to the original #905 rule for stopped_at/paused_at: fall back to
existing frontmatter only when the derived value is absent (empty/null).
Also adjusted the sync-suite test to assert what state sync actually does
(milestone_name preservation) rather than a stopped_at-wins property that
state sync does not have by design.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* fix(#944 ): update existing session block in place (adversarial review)
HIGH finding: the DWIM auto-create in cmdStateRecordSession was appending
a second ## Session block unconditionally, even when one already existed
with non-canonical content (e.g. a markdown table). Both
buildStateFrontmatter and cmdStateSnapshot read only the FIRST ## Session
block via regex, so the newly-written Stopped at / Resume file values
landed in the second, invisible block — frontmatter stopped_at stayed
stale and state-snapshot returned nulls.
Fix: check for an existing ## Session heading. When one is present,
normalize that section in place by replacing its body with canonical
**Last session:** / **Stopped at:** / **Resume file:** bold-label lines.
Only append a brand-new section when NO ## Session heading exists.
LOW finding: the auto-create scaffold emits **Last session:** but
cmdStateSnapshot only matched **Last Date:**, so session.last_date was
null after auto-create despite a valid timestamp being written.
Fix: extend the lastDateMatch regex in cmdStateSnapshot to also accept
**Last session:** / Last session: (the form the scaffold writes).
Tests: 3 new tests added to bug-948-state-noop-write-guard.test.cjs that
confirmed failure against the previous HEAD and pass after this fix:
- exactly one ## Session block after record-session with non-canonical existing block
- state-snapshot sees correct stopped_at via first Session block (not a duplicate)
- state-snapshot session.last_date is non-null after auto-create on body-less file
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
* fix(#944 ): improve in-place section replace to cleanly remove old body content
The previous regex `/(^## Session[ \t]*$)([\s\S]*?)(?=\n^## |\n*$)/im`
with a lazy match consumed nothing after the heading, so old non-canonical
body content (e.g. table rows) remained after the new canonical lines.
While functionally correct (parsers found the canonical lines first in the
FIRST ## Session block), it left stale content in the section. Replace with
a negative-lookahead per-line pattern that consumes all content from the
heading up to (but not including) the next ## heading, producing a clean
section with only the canonical bold-label lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 00:22:29 -04:00
..
2026-06-06 11:24:48 -04:00
2026-06-09 23:50:41 -04:00
2026-06-08 22:11:07 +02:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 18:50:50 -04:00
2026-06-07 23:40:18 +02:00
2026-05-30 17:25:02 -04:00
2026-06-02 18:35:29 -04:00
2026-04-25 10:50:54 -04:00
2026-06-07 01:06:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-04-25 10:50:54 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-27 20:22:09 -04:00
2026-06-06 11:24:48 -04:00
2026-05-24 14:37:10 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-01 21:42:08 -04:00
2026-06-01 22:31:37 -04:00
2026-05-24 19:19:50 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-01 22:43:49 -04:00
2026-05-26 12:08:53 -04:00
2026-06-02 18:35:29 -04:00
2026-05-27 23:14:43 -04:00
2026-06-07 19:22:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-01 22:43:49 -04:00
2026-05-29 17:12:50 -04:00
2026-06-02 18:35:29 -04:00
2026-05-31 14:42:18 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-05-30 12:00:58 -04:00
2026-06-02 18:35:29 -04:00
2026-05-30 19:19:14 -04:00
2026-05-31 22:05:59 -04:00
2026-05-31 22:05:45 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-03 08:08:34 -04:00
2026-06-02 23:02:25 -04:00
2026-06-05 09:26:29 -04:00
2026-06-03 08:07:16 -04:00
2026-06-05 08:57:20 -04:00
2026-06-03 10:11:52 -04:00
2026-06-04 08:54:15 -04:00
2026-06-05 10:35:22 -04:00
2026-06-05 10:35:27 -04:00
2026-06-06 19:40:52 -04:00
2026-06-06 22:13:20 -04:00
2026-06-08 16:05:59 -04:00
2026-06-07 14:59:33 -04:00
2026-06-08 10:42:05 -04:00
2026-06-08 14:04:26 -04:00
2026-06-08 22:51:40 -04:00
2026-06-08 22:52:19 -04:00
2026-06-08 22:52:43 -04:00
2026-06-09 08:59:20 -04:00
2026-06-09 08:42:16 -04:00
2026-06-09 12:37:32 -04:00
2026-06-09 23:28:02 -04:00
2026-06-10 00:22:29 -04:00
2026-05-17 12:00:59 -04:00
2026-06-01 10:56:06 -04:00
2026-04-05 17:49:20 -04:00
2026-05-02 11:45:33 -04:00
2026-04-05 18:05:32 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 12:04:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-27 23:14:43 -04:00
2026-06-06 11:24:48 -04:00
2026-04-17 09:20:26 -04:00
2026-04-22 10:41:58 -04:00
2026-04-25 12:02:58 -04:00
2026-04-17 09:20:42 -04:00
2026-04-29 07:56:51 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-29 11:39:52 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-20 10:08:46 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-22 10:41:58 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-29 11:39:52 -04:00
2026-04-25 12:09:27 -04:00
2026-04-24 18:05:10 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-24 20:22:17 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-25 12:15:39 -04:00
2026-05-29 11:39:52 -04:00
2026-06-06 11:24:48 -04:00
2026-04-27 12:31:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-05 08:57:20 -04:00
2026-06-09 08:59:20 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-04 08:54:15 -04:00
2026-06-02 23:02:25 -04:00
2026-05-30 17:25:02 -04:00
2026-05-30 17:25:02 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 12:04:18 -04:00
2026-06-09 12:51:15 -04:00
2026-06-02 18:35:29 -04:00
2026-05-24 14:16:16 -04:00
2026-06-02 18:35:29 -04:00
2026-05-02 00:29:43 -04:00
2026-06-07 20:22:07 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-02 11:45:36 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-05 15:02:03 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 15:48:40 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-05 15:02:15 -04:00
2026-06-07 20:22:07 -04:00
2026-06-06 11:24:48 -04:00
2026-05-05 18:53:35 -04:00
2026-05-06 21:51:38 -04:00
2026-05-06 21:51:38 -04:00
2026-06-02 18:35:29 -04:00
2026-05-06 22:06:56 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-08 08:40:36 -04:00
2026-06-02 18:35:29 -04:00
2026-05-08 09:26:35 -04:00
2026-06-02 18:35:29 -04:00
2026-05-08 23:53:21 -04:00
2026-06-06 11:24:48 -04:00
2026-05-09 07:40:56 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-16 11:55:55 -04:00
2026-05-14 12:59:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-05-11 22:09:59 -04:00
2026-06-02 18:35:29 -04:00
2026-05-20 23:13:50 -04:00
2026-05-12 18:50:35 -04:00
2026-05-12 18:50:19 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-05-13 13:54:30 -04:00
2026-05-14 07:47:18 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-05-15 14:54:58 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 12:04:18 -04:00
2026-05-23 18:39:02 -04:00
2026-06-02 18:35:29 -04:00
2026-05-16 14:00:34 -04:00
2026-06-02 18:35:29 -04:00
2026-05-15 21:54:03 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-17 19:31:31 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-05-22 11:23:58 -04:00
2026-06-07 10:53:00 -04:00
2026-06-07 23:40:18 +02:00
2026-06-02 18:35:29 -04:00
2026-05-30 17:44:36 -04:00
2026-06-09 22:35:42 -04:00
2026-06-09 22:35:42 -04:00
2026-06-09 16:18:23 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 12:37:26 -04:00
2026-06-08 14:04:26 -04:00
2026-05-01 18:12:20 -04:00
2026-06-01 22:43:49 -04:00
2026-05-16 13:09:54 -04:00
2026-05-01 18:12:20 -04:00
2026-05-30 17:25:02 -04:00
2026-05-28 09:23:59 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-09 23:50:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 16:13:13 -04:00
2026-06-07 15:20:55 -04:00
2026-05-29 11:39:52 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 12:24:04 -04:00
2026-06-07 18:56:25 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-03 08:06:31 -04:00
2026-06-02 18:35:29 -04:00
2026-04-10 10:56:09 -04:00
2026-06-06 11:24:48 -04:00
2026-06-08 15:36:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 15:36:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 20:36:11 -04:00
2026-05-15 00:02:56 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-09 11:39:24 -04:00
2026-06-07 15:27:46 -04:00
2026-06-08 13:29:13 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 15:07:14 -04:00
2026-06-07 19:22:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 10:27:20 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-14 12:43:48 -04:00
2026-06-06 11:24:48 -04:00
2026-04-01 08:47:31 -06:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 08:59:20 -04:00
2026-06-07 20:36:11 -04:00
2026-06-07 18:56:36 -04:00
2026-06-07 18:54:05 -04:00
2026-06-07 19:16:32 -04:00
2026-06-07 18:56:42 -04:00
2026-06-07 20:36:11 -04:00
2026-06-07 18:56:47 -04:00
2026-06-08 10:41:54 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 14:04:26 -04:00
2026-04-25 16:26:15 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 14:04:26 -04:00
2026-06-06 11:24:48 -04:00
2026-06-08 14:04:26 -04:00
2026-05-16 12:39:02 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-01 22:43:49 -04:00
2026-06-08 16:05:59 -04:00
2026-04-30 00:48:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-29 11:39:52 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 23:56:53 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 12:04:18 -04:00
2026-05-02 23:12:50 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-05 20:19:08 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-13 21:19:47 -04:00
2026-06-02 18:35:29 -04:00
2026-05-09 11:46:34 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-09 13:54:06 -04:00
2026-06-06 11:24:48 -04:00
2026-05-15 23:57:38 -04:00
2026-05-15 23:57:38 -04:00
2026-06-02 18:35:29 -04:00
2026-05-16 00:23:27 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-08 23:37:41 -04:00
2026-06-08 23:37:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-26 11:23:42 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 19:42:05 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-29 10:54:49 -04:00
2026-06-09 23:50:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 12:04:18 -04:00
2026-05-26 18:55:40 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-05-26 11:23:35 -04:00
2026-06-06 12:04:38 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-20 20:39:01 -04:00
2026-06-08 22:51:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 15:09:34 -04:00
2026-06-09 08:59:20 -04:00
2026-06-06 11:24:48 -04:00
2026-06-07 18:56:20 -04:00
2026-06-07 22:27:05 +02:00
2026-06-02 18:35:29 -04:00
2026-06-09 12:37:26 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 23:50:41 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 10:24:32 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 11:46:19 -04:00
2026-06-09 08:59:20 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 20:36:11 -04:00
2026-06-07 18:54:08 -04:00
2026-06-07 15:20:55 -04:00
2026-06-07 20:22:07 -04:00
2026-06-07 21:43:30 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-07 20:35:43 -04:00
2026-06-06 22:16:20 +02:00
2026-06-06 22:16:20 +02:00
2026-06-07 01:27:12 +02:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-09 23:53:25 -04:00
2026-06-01 22:43:49 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 12:04:38 -04:00
2026-06-08 22:16:58 -04:00
2026-06-09 00:24:12 -04:00
2026-05-29 11:39:52 -04:00
2026-06-05 17:58:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-05-31 23:15:55 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 23:40:18 +02:00
2026-06-02 18:35:29 -04:00
2026-06-08 17:26:40 -04:00
2026-06-07 12:05:13 +02:00
2026-05-06 21:51:38 -04:00
2026-05-06 21:51:38 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-31 20:28:57 -04:00
2026-06-05 09:26:29 -04:00
2026-05-28 09:23:59 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-04-06 15:13:23 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-16 17:15:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-08 11:12:08 -04:00
2026-06-08 14:38:26 -04:00
2026-06-08 23:42:24 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 08:42:25 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 12:37:32 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 23:50:41 -04:00
2026-06-04 14:57:18 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-05-18 12:06:46 -04:00
2026-05-28 18:06:19 -04:00
2026-05-28 18:06:19 -04:00
2026-05-29 11:39:52 -04:00
2026-06-07 15:48:40 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-18 23:13:09 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 23:50:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-01 19:50:10 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-05-29 11:39:52 -04:00
2026-06-09 23:50:41 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-04 14:57:18 -04:00
2026-05-26 22:46:09 -04:00
2026-05-29 10:54:49 -04:00
2026-05-30 17:25:02 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-26 13:33:45 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-06 21:51:38 -04:00
2026-06-08 14:04:47 -04:00
2026-06-08 12:04:26 -04:00
2026-05-10 14:43:53 -05:00
2026-06-01 20:37:49 -04:00
2026-06-08 12:04:26 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 17:16:26 -04:00
2026-06-09 10:15:41 -04:00
2026-06-08 03:57:58 +02:00
2026-06-07 16:13:06 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 22:16:19 +02:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-26 18:56:00 -04:00
2026-06-09 23:50:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-09 23:50:41 -04:00
2026-06-09 23:50:41 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:24:48 -04:00
2026-04-10 13:55:27 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 11:09:54 -04:00
2026-06-09 10:25:55 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-11 15:02:55 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-05-29 11:39:52 -04:00
2026-05-26 11:23:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-04-20 10:08:18 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-05-15 19:32:02 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 01:26:56 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 00:46:27 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 19:25:25 -04:00
2026-05-29 11:39:52 -04:00
2026-06-02 18:35:29 -04:00
2026-04-04 14:29:03 -04:00
2026-06-06 11:24:48 -04:00
2026-06-09 23:50:41 -04:00
2026-04-04 14:29:03 -04:00
2026-06-07 12:24:04 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-07 10:11:54 -04:00
2026-06-06 11:24:48 -04:00
2026-06-09 08:42:25 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-06-06 11:24:48 -04:00
2026-06-06 23:40:24 -04:00
2026-06-06 23:40:24 -04:00
2026-06-03 08:07:16 -04:00
2026-06-06 12:40:28 -04:00
2026-06-06 11:24:48 -04:00