Tom Boucher
46f14c621e
fix( #3583 ): one percent per write — route update-progress through the shared computation ( #3634 )
...
* test(3583): failing-first coverage for one percent per write
state update-progress computes plan throughput (summaries/plans) for stdout and the
body Progress bar, while the same write re-derives frontmatter progress.percent as
min(planFraction, phaseFraction). Neither consults the other, so mid-phase the file
contradicts itself and state json disagrees with the verb that just wrote it.
These tests fail on that: equality across stdout, body bar, frontmatter and state json
on fixtures where the two fractions differ, plus a derivation-parity test that fails if
completedPhases is ever derived by summary parity instead of verification-passed status.
Also updates three pre-existing tests that pinned stdout to the plan-throughput value
(50->0, 50->0, 100->0). Those fixtures have summarized-but-unverified phases, so the old
expectations encoded the bug; changing them IS the fix, as the issue states explicitly.
* fix(3583): one percent per write — route the verb through the shared computation
RED proven at 7dbbb2d2: 9 failures — the new cross-surface equality tests, the withhold
test, and the pre-existing tests whose expectations encoded the bug.
state update-progress computed plan throughput (summaries/plans) for stdout and the body
Progress bar, while the SAME write re-derived frontmatter progress.percent as
min(planFraction, phaseFraction) through a separate path. Neither consulted the other, so
on any project where plan throughput ran ahead of phase completion — the normal mid-phase
state — the file contradicted itself and state json disagreed with the verb that had just
written it. Exit 0, no signal.
This is not a dispute about which metric is right. The min cap is deliberate (#3242 Bug B)
and is untouched; the fix aligns the printed and body values WITH it. Verified by diff:
computeProgressPercent's definition and cmdStateSync are both unmodified.
The verb now takes its percent from buildStateFrontmatter — the single owner of the
isPhaseComplete-based completedPhases count and the ROADMAP-union totalPhases logic that
the frontmatter sync later uses inside the same read-modify-write. Both calls hit the same
disk-scan cache against the same on-disk state, so they cannot disagree. Reusing that
owner, rather than re-deriving completedPhases locally, is the point: a second
almost-identical derivation is the very defect class being fixed, and a parity test now
fails if anyone swaps it for summary parity.
The first cut fell back to plan throughput when the shared computation withheld. That
reintroduced the defect in a rarer case — stdout would print a number the frontmatter
deliberately did not contain — so it is gone. The verb now withholds in the same shape as
its existing #3217 and #3233 guards. That path is reachable, not theoretical: a bare vX.Y
token in ROADMAP prose with no versioned heading leaves the milestone unbounded while both
existing guards see a COMPLETE scope. Covered by a test that also asserts state json omits
the percent, proving it is the same withhold rather than a divergent local computation.
Three pre-existing tests pinned stdout to plan throughput (50->0, 50->0, 100->0); their
fixtures have summarized-but-unverified phases, so those expectations encoded the bug.
Updating them is the fix, as the issue states.
Fixes #3583
* fix(3583): source the reported counts from the same milestone window as the percent
The adversarial pass found the first cut left the SAME defect one field over.
cmdStateUpdateProgress still reported completed/total from the top-of-function scan,
which calls listMilestonePhaseDirs with NO versionOverride — the auto-derived current
milestone — while percent now came from buildStateFrontmatter, whose scan scopes by
versionOverride: storedMilestone. getMilestonePhaseFilter shows those can select
different milestone windows, and #3017 's own comment warns about exactly that mis-bind.
So a single JSON object could report a percent inconsistent with its own counts: the
self-contradiction this issue was filed to close, relocated rather than removed.
Counts now come from the same buildStateFrontmatter result as the percent. Proven on a
real divergent-milestone fixture where a preamble phase leaks into the auto-derived scan
but is excluded from the stored-milestone-scoped one: with the fix stashed the verb emits
{percent:0, completed:1, total:2}; with it applied, {percent:0, completed:1, total:1}.
The guard scan remains, gating only the #3217/#3233 withholds.
Also corrected a comment that overstated caching. Only the phase/plan disk scan is shared
between the two buildStateFrontmatter calls; getMilestoneInfo re-reads and re-parses
ROADMAP.md and readGitHeadSha spawns a bounded git rev-parse, and both now run twice per
invocation. Threading a precomputed frontmatter through the write seam to avoid it was
rejected: that seam is the shared ADR-3408 §8.3 composition with three other callers and
heavily-documented invariants, and this is not the change to renegotiate it. The comment
now says what is and is not cached instead of implying the second call is free.
Standards: six new assertions matched raw STATE.md body text the code under test had just
produced — the pattern CONTRIBUTING bans by name. They now extract the body Progress field
with the repo's own field extractor and assert the parsed percent, so the check survives
rewording of the rendered bar. The acceptance criterion still verifies the bar; only what
it asserts on moved.
Also trimmed ~50 lines of narration around a ~15-line change into a named helper, and
fixed a stale test comment that still claimed 100% next to assertions expecting 0%.
* chore(3583): add changeset fragment
* chore(3583): backfill changeset PR number (#3634 )
---------
Co-authored-by: sim <sim@local>
2026-08-18 15:24:07 -04:00
..
2026-06-25 18:24:39 -04:00
2026-08-17 22:28:05 -04:00
2026-08-18 14:11:23 -04:00
2026-08-17 15:56:46 -04:00
2026-08-18 14:11:23 -04:00
2026-06-25 18:24:39 -04:00
2026-08-18 07:26:28 -04:00
2026-07-09 23:43:18 -04:00
2026-06-15 23:21:20 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 11:37:44 -04:00
2026-07-06 08:31:51 -04:00
2026-07-17 06:50:06 -04:00
2026-08-11 22:23:55 -04:00
2026-06-13 21:07:55 -04:00
2026-06-13 21:07:55 -04:00
2026-06-13 21:07:55 -04:00
2026-08-07 21:03:50 -04:00
2026-08-09 14:23:35 -04:00
2026-06-14 10:45:42 -04:00
2026-08-05 17:20:56 -04:00
2026-07-24 12:49:53 -04:00
2026-07-13 09:02:44 -06:00
2026-08-14 19:02:14 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-06-21 22:55:22 -04:00
2026-06-13 23:35:08 -04:00
2026-08-14 10:02:28 -04:00
2026-08-17 17:25:53 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 23:10:52 -04:00
2026-08-12 20:45:00 -04:00
2026-08-10 09:48:26 -04:00
2026-08-04 18:10:31 -04:00
2026-08-14 16:03:48 -04:00
2026-08-14 13:10:49 -04:00
2026-04-25 10:50:54 -04:00
2026-07-01 20:09:01 -04:00
2026-08-08 05:50:49 -05:00
2026-06-12 19:51:54 -04:00
2026-06-11 23:59:56 -04:00
2026-06-06 11:24:48 -04:00
2026-06-02 18:35:29 -04:00
2026-07-30 12:48:06 -04:00
2026-07-30 12:48:06 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 16:19:57 -04:00
2026-08-06 23:57:05 -04:00
2026-08-14 13:10:49 -04:00
2026-07-03 09:17:32 -04:00
2026-08-08 05:50:17 -05:00
2026-06-27 08:43:47 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 17:00:52 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 09:23:44 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:31:55 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 23:01:30 -04:00
2026-06-10 16:10:07 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-03 19:59:58 -04:00
2026-06-15 18:11:20 -04:00
2026-07-24 22:49:29 -04:00
2026-08-03 12:39:16 -04:00
2026-08-07 03:14:40 -04:00
2026-08-07 21:03:50 -04:00
2026-08-10 12:55:52 -04:00
2026-08-07 15:18:18 -04:00
2026-06-18 23:37:43 -04:00
2026-08-07 15:18:18 -04:00
2026-06-09 22:35:42 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 21:34:29 -04:00
2026-08-12 08:25:14 -04:00
2026-06-26 12:44:09 -04:00
2026-07-03 19:37:14 -04:00
2026-06-16 02:38:47 -04:00
2026-08-17 17:25:53 -04:00
2026-08-14 21:34:29 -04:00
2026-08-08 05:50:17 -05:00
2026-08-14 21:34:29 -04:00
2026-08-07 15:18:18 -04:00
2026-07-03 09:17:32 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-08-10 12:55:52 -04:00
2026-06-14 15:02:54 -04:00
2026-07-21 19:32:51 -04:00
2026-05-01 18:12:20 -04:00
2026-08-09 12:27:04 -04:00
2026-08-16 12:59:08 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 01:10:48 -04:00
2026-07-28 18:26:55 -04:00
2026-07-05 14:04:29 -04:00
2026-08-08 05:50:17 -05:00
2026-08-14 09:27:48 -04:00
2026-08-07 21:03:50 -04:00
2026-08-18 14:11:23 -04:00
2026-08-05 23:22:59 -04:00
2026-08-07 15:18:18 -04:00
2026-08-05 23:22:59 -04:00
2026-08-08 16:05:17 -04:00
2026-07-28 18:02:17 -04:00
2026-08-14 19:02:14 -04:00
2026-06-12 16:03:51 -04:00
2026-07-26 01:06:35 -04:00
2026-07-26 20:49:38 -04:00
2026-08-14 09:28:22 -04:00
2026-08-14 13:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 21:03:50 -04:00
2026-07-09 19:38:27 -04:00
2026-07-09 19:38:27 -04:00
2026-08-05 17:20:56 -04:00
2026-08-18 09:23:44 -04:00
2026-07-09 19:38:27 -04:00
2026-05-29 11:39:52 -04:00
2026-08-10 10:18:29 -04:00
2026-08-11 22:23:55 -04:00
2026-08-07 21:03:50 -04:00
2026-07-20 08:22:23 -04:00
2026-06-13 23:35:08 -04:00
2026-08-13 16:19:57 -04:00
2026-06-06 11:24:48 -04:00
2026-08-14 00:26:07 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 23:01:00 -04:00
2026-07-29 19:49:53 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 09:23:44 -04:00
2026-07-11 09:39:34 -04:00
2026-08-10 01:31:15 -04:00
2026-08-18 09:23:44 -04:00
2026-08-18 09:23:44 -04:00
2026-08-10 02:11:57 -04:00
2026-07-03 08:59:23 -04:00
2026-08-15 23:29:30 -04:00
2026-08-14 10:02:28 -04:00
2026-08-18 00:25:32 -04:00
2026-08-17 21:59:40 -04:00
2026-08-07 15:18:18 -04:00
2026-08-17 13:34:55 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 19:02:14 -04:00
2026-08-18 07:26:28 -04:00
2026-08-08 16:05:17 -04:00
2026-08-09 19:52:47 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 21:03:50 -04:00
2026-08-15 01:56:37 -04:00
2026-08-14 19:02:14 -04:00
2026-08-14 19:02:14 -04:00
2026-08-08 05:50:17 -05:00
2026-07-05 17:15:48 -04:00
2026-08-01 01:34:05 -04:00
2026-07-31 23:03:13 -04:00
2026-07-31 23:03:13 -04:00
2026-08-14 16:03:48 -04:00
2026-07-31 15:44:19 -04:00
2026-07-31 13:17:01 -04:00
2026-07-31 13:17:01 -04:00
2026-08-08 16:05:17 -04:00
2026-06-14 08:25:41 -04:00
2026-06-02 18:35:29 -04:00
2026-08-12 20:45:04 -04:00
2026-07-27 19:55:37 -04:00
2026-07-29 17:06:04 -04:00
2026-07-29 17:06:04 -04:00
2026-08-18 09:23:44 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 07:02:33 -04:00
2026-06-22 23:43:22 -04:00
2026-08-14 13:10:49 -04:00
2026-06-13 23:35:08 -04:00
2026-08-18 09:23:44 -04:00
2026-07-09 00:21:28 -04:00
2026-08-18 09:23:44 -04:00
2026-08-13 16:19:57 -04:00
2026-08-18 09:23:44 -04:00
2026-08-05 17:20:56 -04:00
2026-07-30 12:48:06 -04:00
2026-08-18 14:11:23 -04:00
2026-08-14 11:26:08 -04:00
2026-08-05 17:20:56 -04:00
2026-07-18 14:42:29 -04:00
2026-07-18 00:39:28 -04:00
2026-07-21 18:38:51 -04:00
2026-07-18 13:42:58 -04:00
2026-07-18 15:46:42 -04:00
2026-07-18 07:55:28 -04:00
2026-07-18 19:01:04 -04:00
2026-08-14 21:34:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-17 17:25:53 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-10 12:55:52 -04:00
2026-07-19 22:44:08 -04:00
2026-07-13 07:03:47 -07:00
2026-07-29 17:06:04 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 15:57:25 -04:00
2026-08-12 00:51:19 -04:00
2026-07-03 10:22:11 -04:00
2026-08-13 16:19:57 -04:00
2026-07-31 21:20:46 -04:00
2026-08-07 21:03:50 -04:00
2026-08-05 18:28:04 -04:00
2026-08-14 16:03:48 -04:00
2026-08-12 20:44:57 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 01:44:54 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 08:19:35 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 16:00:14 -04:00
2026-08-16 01:14:26 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:18:18 -04:00
2026-08-08 14:22:10 -04:00
2026-08-08 14:22:10 -04:00
2026-08-09 19:35:34 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 19:02:14 -04:00
2026-07-26 16:28:56 -04:00
2026-07-26 16:28:56 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-06-13 21:07:55 -04:00
2026-08-14 10:02:28 -04:00
2026-08-01 14:24:05 -04:00
2026-07-03 09:17:32 -04:00
2026-08-14 23:01:30 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:58:34 -04:00
2026-08-07 21:03:50 -04:00
2026-08-17 17:25:53 -04:00
2026-08-14 16:03:48 -04:00
2026-08-09 23:05:41 -04:00
2026-06-28 12:00:43 -04:00
2026-06-28 12:25:02 -04:00
2026-06-14 12:23:07 -04:00
2026-08-05 16:00:52 -04:00
2026-06-02 18:35:29 -04:00
2026-07-08 12:57:49 +03:00
2026-08-05 16:44:07 -04:00
2026-07-20 14:59:30 -04:00
2026-08-11 17:42:41 -04:00
2026-08-01 21:27:33 -04:00
2026-06-13 21:07:55 -04:00
2026-06-20 01:59:03 -04:00
2026-06-12 23:43:07 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 21:03:50 -04:00
2026-06-02 18:35:29 -04:00
2026-07-29 17:06:04 -04:00
2026-08-09 23:41:44 -04:00
2026-08-07 21:03:50 -04:00
2026-07-27 16:50:12 -04:00
2026-08-15 07:02:33 -04:00
2026-08-14 23:00:10 -04:00
2026-08-14 01:10:48 -04:00
2026-08-03 12:16:56 -04:00
2026-08-03 12:16:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-17 15:56:46 -04:00
2026-08-07 15:45:51 -04:00
2026-08-03 19:59:58 -04:00
2026-07-11 23:24:42 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 21:03:50 -04:00
2026-07-22 00:27:35 -04:00
2026-08-16 01:14:26 -04:00
2026-08-11 23:35:44 -04:00
2026-08-07 15:45:51 -04:00
2026-07-03 08:59:23 -04:00
2026-07-05 14:50:01 -04:00
2026-08-01 21:36:48 -04:00
2026-08-07 15:45:51 -04:00
2026-08-06 02:56:07 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 14:11:23 -04:00
2026-08-18 14:11:23 -04:00
2026-06-28 14:27:43 -04:00
2026-08-10 11:59:51 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 11:33:32 -06:00
2026-07-14 21:09:24 -04:00
2026-08-18 14:11:23 -04:00
2026-07-03 08:59:23 -04:00
2026-07-03 12:18:25 -04:00
2026-08-07 10:58:34 -04:00
2026-08-14 10:02:28 -04:00
2026-07-02 18:08:42 -04:00
2026-06-25 18:24:39 -04:00
2026-08-17 15:56:46 -04:00
2026-08-14 02:46:16 -04:00
2026-08-05 21:39:53 -04:00
2026-08-08 05:58:35 -05:00
2026-08-16 02:09:39 -04:00
2026-07-09 20:47:35 -04:00
2026-08-05 17:20:56 -04:00
2026-08-18 09:23:44 -04:00
2026-06-28 11:44:36 -04:00
2026-04-04 14:29:03 -04:00
2026-08-10 19:02:34 -04:00
2026-08-18 09:23:44 -04:00
2026-08-10 19:02:34 -04:00
2026-07-04 13:32:51 -04:00
2026-08-12 20:45:08 -04:00
2026-08-10 09:48:26 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:09:18 -04:00
2026-08-10 15:24:39 -04:00
2026-08-17 18:24:49 -04:00
2026-06-24 17:07:23 -04:00
2026-08-14 21:19:35 -04:00
2026-08-14 10:02:28 -04:00
2026-08-16 02:48:24 -04:00
2026-08-18 09:23:44 -04:00
2026-07-08 21:42:11 -04:00
2026-07-03 10:22:11 -04:00
2026-08-18 09:23:44 -04:00
2026-08-18 09:23:44 -04:00
2026-08-10 15:50:55 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 09:23:44 -04:00
2026-08-18 09:23:44 -04:00
2026-08-10 15:50:55 -04:00
2026-08-07 13:41:21 -04:00
2026-08-01 21:00:23 -04:00
2026-08-07 15:18:18 -04:00
2026-07-21 08:26:47 -04:00
2026-08-07 13:41:21 -04:00
2026-06-09 12:51:15 -04:00
2026-06-06 11:24:48 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 23:48:39 -04:00
2026-08-18 09:23:44 -04:00
2026-08-11 17:42:41 -04:00
2026-06-16 00:12:54 -04:00
2026-08-05 18:28:04 -04:00
2026-08-05 18:28:04 -04:00
2026-08-13 02:56:12 -04:00
2026-08-13 02:56:12 -04:00
2026-08-10 15:24:39 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 14:11:23 -04:00
2026-06-07 20:35:43 -04:00
2026-06-13 16:13:00 -04:00
2026-07-18 12:20:32 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 21:19:49 -04:00
2026-07-28 18:31:40 -04:00
2026-07-11 00:53:34 -04:00
2026-07-28 18:31:40 -04:00
2026-08-05 01:06:39 -04:00
2026-06-06 22:16:20 +02:00
2026-06-07 01:27:12 +02:00
2026-08-16 01:14:26 -04:00
2026-08-14 13:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 13:10:49 -04:00
2026-08-15 00:33:31 -04:00
2026-08-10 19:02:34 -04:00
2026-08-07 15:45:51 -04:00
2026-06-01 22:43:49 -04:00
2026-08-10 12:55:52 -04:00
2026-08-13 11:31:16 -04:00
2026-08-18 14:11:23 -04:00
2026-08-07 15:45:51 -04:00
2026-08-13 11:31:16 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-06-18 08:50:22 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:45:51 -04:00
2026-06-22 00:59:41 -04:00
2026-06-22 00:59:41 -04:00
2026-08-08 05:50:49 -05:00
2026-08-04 22:41:01 -04:00
2026-08-14 13:10:49 -04:00
2026-06-11 14:11:50 -04:00
2026-06-12 21:24:09 -04:00
2026-07-07 15:11:12 -04:00
2026-08-17 22:28:05 -04:00
2026-06-16 00:12:54 -04:00
2026-07-03 19:37:14 -04:00
2026-08-07 15:18:18 -04:00
2026-08-18 07:26:28 -04:00
2026-08-14 10:02:28 -04:00
2026-06-21 14:37:18 -04:00
2026-08-07 15:18:18 -04:00
2026-08-11 23:55:11 -04:00
2026-07-31 13:17:01 -04:00
2026-08-17 14:51:00 -04:00
2026-08-09 17:08:46 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-08-05 13:30:55 -04:00
2026-07-28 18:02:01 -04:00
2026-08-14 23:01:15 -04:00
2026-07-20 16:52:34 -04:00
2026-06-02 18:35:29 -04:00
2026-08-18 07:26:28 -04:00
2026-06-15 18:11:20 -04:00
2026-08-14 03:04:09 -04:00
2026-08-05 18:22:14 -04:00
2026-06-25 18:24:39 -04:00
2026-08-08 19:06:13 -04:00
2026-08-13 23:47:23 -04:00
2026-08-14 21:06:01 -04:00
2026-06-28 11:27:44 -04:00
2026-06-30 22:21:18 -04:00
2026-06-11 13:36:23 -04:00
2026-07-17 06:48:04 -04:00
2026-08-14 10:02:28 -04:00
2026-07-03 08:59:23 -04:00
2026-08-18 09:23:44 -04:00
2026-07-07 21:22:48 -04:00
2026-07-22 00:27:35 -04:00
2026-08-07 15:45:51 -04:00
2026-06-25 21:49:22 -04:00
2026-07-30 08:52:56 -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-08-13 20:31:55 -04:00
2026-08-03 19:59:58 -04:00
2026-06-01 22:43:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 02:47:24 -04:00
2026-08-11 17:10:28 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 20:27:48 -04:00
2026-07-05 16:43:26 -04:00
2026-07-03 09:17:32 -04:00
2026-06-25 18:24:39 -04:00
2026-07-30 15:26:43 -04:00
2026-08-14 10:02:28 -04:00
2026-08-12 20:08:35 -04:00
2026-06-25 15:26:23 -04:00
2026-08-14 10:02:28 -04:00
2026-08-13 16:19:57 -04:00
2026-08-07 15:18:18 -04:00
2026-06-25 16:25:48 -04:00
2026-07-11 23:24:42 -04:00
2026-06-25 21:49:22 -04:00
2026-08-08 16:05:17 -04:00
2026-08-05 01:06:39 -04:00
2026-07-19 15:43:48 -04:00
2026-08-16 01:14:26 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 15:57:25 -04:00
2026-08-08 05:56:22 -05:00
2026-07-30 15:27:52 -04:00
2026-08-14 13:10:49 -04:00
2026-06-02 18:35:29 -04:00
2026-08-11 23:55:11 -04:00
2026-08-14 12:20:43 -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-25 18:24:39 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 10:02:28 -04:00
2026-08-18 09:23:44 -04:00
2026-04-16 17:15:29 -04:00
2026-08-14 14:34:36 -04:00
2026-08-07 21:03:50 -04:00
2026-06-15 18:11:20 -04:00
2026-07-08 10:25:28 -04:00
2026-08-10 20:51:40 -04:00
2026-06-22 12:33:13 -04:00
2026-06-12 19:51:54 -04:00
2026-08-14 19:02:14 -04:00
2026-06-13 21:07:55 -04:00
2026-08-03 19:59:58 -04:00
2026-07-28 18:02:17 -04:00
2026-08-14 13:10:49 -04:00
2026-08-14 13:10:49 -04:00
2026-07-26 21:42:50 -04:00
2026-08-13 16:19:57 -04:00
2026-08-15 07:02:33 -04:00
2026-07-13 20:36:14 -04:00
2026-08-11 22:23:55 -04:00
2026-08-13 02:28:49 -04:00
2026-08-17 12:58:25 -04:00
2026-07-03 01:55:48 -04:00
2026-08-07 13:41:21 -04:00
2026-08-14 12:08:21 -04:00
2026-07-11 21:07:38 -04:00
2026-07-22 16:05:41 -04:00
2026-04-04 14:29:03 -04:00
2026-06-02 18:35:29 -04:00
2026-08-09 10:35:27 -04:00
2026-08-08 01:20:55 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-08-10 20:51:40 -04:00
2026-07-03 09:17:32 -04:00
2026-08-14 09:27:48 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-07-26 14:29:02 -04:00
2026-08-15 23:29:30 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 11:04:55 -04:00
2026-08-10 12:56:38 -04:00
2026-08-12 22:54:30 -04:00
2026-08-17 15:56:46 -04:00
2026-08-17 14:51:00 -04:00
2026-06-25 14:37:10 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-08-05 17:20:56 -04:00
2026-08-10 12:56:38 -04:00
2026-06-09 23:50:41 -04:00
2026-06-25 18:24:39 -04:00
2026-06-11 13:36:47 -04:00
2026-06-25 23:55:58 -04:00
2026-07-08 21:42:11 -04:00
2026-08-15 07:02:33 -04:00
2026-08-09 21:38:53 -04:00
2026-08-09 18:29:16 -04:00
2026-08-14 23:01:30 -04:00
2026-08-09 23:41:44 -04:00
2026-06-21 10:44:48 -04:00
2026-07-02 11:55:53 -04:00
2026-08-09 23:41:44 -04:00
2026-08-13 16:19:57 -04:00
2026-08-08 05:50:17 -05:00
2026-07-03 01:55:48 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:02:28 -04:00
2026-06-15 22:48:48 -04:00
2026-08-07 21:03:50 -04:00
2026-08-05 17:20:56 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 13:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-08-13 21:22:03 -04:00
2026-08-14 13:10:49 -04:00
2026-08-07 21:03:50 -04:00
2026-07-31 02:30:50 -04:00
2026-08-05 17:20:56 -04:00
2026-07-31 23:03:13 -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-08-12 20:45:04 -04:00
2026-06-02 18:35:29 -04:00
2026-08-07 15:18:18 -04:00
2026-08-07 10:58:34 -04:00
2026-08-14 16:03:48 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 13:10:49 -04:00
2026-07-10 15:44:19 -04:00
2026-06-25 21:16:47 -04:00
2026-07-10 15:44:19 -04:00
2026-04-04 14:29:03 -04:00
2026-08-05 01:06:39 -04:00
2026-08-05 01:06:39 -04:00
2026-08-05 01:06:39 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 10:58:34 -04:00
2026-06-17 14:32:43 -04:00
2026-08-09 19:52:47 -04:00
2026-07-29 07:00:35 -04:00
2026-07-31 08:11:57 -04:00
2026-07-31 08:11:57 -04:00
2026-07-21 23:23:45 -04:00
2026-06-25 18:24:39 -04:00
2026-07-19 14:33:19 -04:00
2026-08-07 15:18:18 -04:00
2026-05-26 22:46:09 -04:00
2026-05-29 10:54:49 -04:00
2026-08-07 21:03:50 -04:00
2026-08-16 12:59:08 -04:00
2026-08-04 13:23:44 -04:00
2026-08-14 15:57:25 -04:00
2026-08-08 05:50:17 -05:00
2026-06-25 23:55:58 -04:00
2026-08-09 21:38:53 -04:00
2026-08-09 21:38:53 -04:00
2026-06-25 18:24:39 -04:00
2026-08-14 10:02:28 -04:00
2026-06-13 23:35:08 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-13 23:35:08 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-08-05 17:20:56 -04:00
2026-08-11 22:23:55 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 12:05:45 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 02:53:19 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 18:35:29 -04:00
2026-08-14 13:10:49 -04:00
2026-08-12 08:25:14 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 00:29:42 -04:00
2026-08-14 02:34:29 -04:00
2026-07-30 08:52:56 -04:00
2026-06-26 23:35:04 -04:00
2026-06-26 23:35:04 -04:00
2026-07-29 07:31:32 -04:00
2026-08-10 20:51:40 -04:00
2026-07-30 08:52:56 -04:00
2026-08-07 15:45:51 -04:00
2026-08-09 22:25:42 -04:00
2026-08-11 17:42:41 -04:00
2026-07-29 11:21:49 -04:00
2026-08-14 01:44:54 -04:00
2026-05-06 21:51:38 -04:00
2026-08-17 16:50:24 -04:00
2026-06-30 20:43:25 -04:00
2026-08-07 15:18:18 -04:00
2026-08-15 07:02:33 -04:00
2026-08-05 17:20:56 -04:00
2026-08-08 05:50:17 -05:00
2026-08-08 16:05:17 -04:00
2026-06-21 20:40:13 -04:00
2026-08-17 17:25:53 -04:00
2026-07-17 06:50:06 -04:00
2026-08-18 09:23:44 -04:00
2026-08-09 22:25:42 -04:00
2026-08-17 17:25:53 -04:00
2026-08-01 16:00:14 -04:00
2026-08-14 19:02:14 -04:00
2026-08-18 09:23:44 -04:00
2026-07-22 00:27:35 -04:00
2026-08-14 15:57:25 -04:00
2026-08-07 18:53:25 -04:00
2026-07-03 08:59:23 -04:00
2026-07-06 08:31:51 -04:00
2026-08-13 16:19:57 -04:00
2026-08-14 10:02:28 -04:00
2026-06-02 18:35:29 -04:00
2026-06-24 17:03:01 -04:00
2026-05-26 18:56:00 -04:00
2026-07-02 21:45:35 -04:00
2026-06-25 18:24:39 -04:00
2026-08-10 13:45:20 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-08-03 19:59:58 -04:00
2026-07-13 00:47:15 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 13:53:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 17:00:52 -04:00
2026-07-03 09:17:32 -04:00
2026-07-03 08:59:23 -04:00
2026-08-14 10:02:28 -04:00
2026-06-14 20:52:56 -04:00
2026-08-18 09:23:44 -04:00
2026-08-15 00:02:37 -04:00
2026-08-15 00:02:37 -04:00
2026-08-14 21:19:35 -04:00
2026-08-18 14:12:44 -04:00
2026-07-13 15:36:17 -04:00
2026-08-11 22:23:55 -04:00
2026-08-12 08:25:14 -04:00
2026-08-17 15:24:24 -04:00
2026-08-07 15:45:51 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:45:51 -04:00
2026-07-15 19:18:28 -04:00
2026-08-12 20:46:12 -04:00
2026-08-12 20:46:12 -04:00
2026-08-03 19:59:58 -04:00
2026-07-31 10:20:17 -04:00
2026-08-07 21:03:50 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 09:23:44 -04:00
2026-08-05 16:00:52 -04:00
2026-07-17 18:29:28 -04:00
2026-08-17 14:06:09 -04:00
2026-08-09 22:49:39 -04:00
2026-06-28 11:44:36 -04:00
2026-07-03 01:55:48 -04:00
2026-08-14 10:02:28 -04:00
2026-08-06 23:57:05 -04:00
2026-08-14 16:04:09 -04:00
2026-08-14 23:43:56 -04:00
2026-08-18 15:24:07 -04:00
2026-07-03 01:55:48 -04:00
2026-08-17 11:39:01 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 10:24:05 -04:00
2026-07-05 18:01:28 -04:00
2026-07-12 01:32:12 -04:00
2026-06-12 13:29:45 -04:00
2026-08-13 16:17:10 -04:00
2026-07-14 14:25:44 -04:00
2026-06-13 21:07:55 -04:00
2026-06-17 08:52:23 -04:00
2026-06-15 18:11:20 -04:00
2026-08-14 11:22:51 -04:00
2026-05-29 11:39:52 -04:00
2026-05-26 11:23:29 -04:00
2026-08-13 21:22:03 -04:00
2026-08-07 15:18:18 -04:00
2026-08-13 20:27:48 -04:00
2026-06-06 11:24:48 -04:00
2026-06-20 13:36:57 -04:00
2026-08-14 13:10:49 -04:00
2026-07-24 21:36:33 -04:00
2026-08-13 23:08:34 -04:00
2026-07-15 09:41:36 -04:00
2026-08-14 10:02:28 -04:00
2026-07-10 21:31:10 -04:00
2026-06-24 13:19:10 -04:00
2026-08-01 16:00:14 -04:00
2026-08-07 15:45:51 -04:00
2026-08-15 07:02:33 -04:00
2026-08-15 07:02:33 -04:00
2026-07-08 12:57:49 +03:00
2026-08-05 17:20:56 -04:00
2026-07-28 18:31:47 -04:00
2026-06-30 10:52:30 -04:00
2026-08-14 09:27:48 -04:00
2026-06-02 18:35:29 -04:00
2026-08-15 21:09:05 -04:00
2026-08-15 21:09:05 -04:00
2026-06-24 17:07:23 -04:00
2026-08-13 01:10:53 -04:00
2026-08-12 00:51:19 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-08-17 17:25:53 -04:00
2026-05-15 19:32:02 -04:00
2026-08-07 15:45:51 -04:00
2026-06-02 18:35:29 -04:00
2026-08-15 07:02:33 -04:00
2026-08-16 14:14:27 -04:00
2026-08-13 21:22:03 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 18:35:29 -04:00
2026-06-07 00:46:27 -04:00
2026-08-17 15:56:46 -04:00
2026-08-13 21:22:03 -04:00
2026-06-02 19:25:25 -04:00
2026-08-13 21:22:03 -04:00
2026-08-03 19:59:58 -04:00
2026-08-14 17:29:58 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-07-11 23:24:42 -04:00
2026-08-10 11:59:51 -04:00
2026-08-10 11:59:51 -04:00
2026-08-13 21:22:03 -04:00
2026-08-18 09:23:44 -04:00
2026-08-07 15:18:18 -04:00
2026-06-07 12:24:04 -04:00
2026-07-21 18:38:51 -04:00
2026-08-16 01:14:26 -04:00
2026-08-01 12:12:20 -04:00
2026-08-14 10:02:28 -04:00
2026-08-18 09:23:44 -04:00
2026-08-14 21:19:35 -04:00
2026-08-11 22:23:55 -04:00
2026-08-09 21:38:53 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 11:42:22 -04:00
2026-06-11 23:59:56 -04:00
2026-07-05 14:38:24 -04:00
2026-08-14 10:02:28 -04:00
2026-08-15 07:02:33 -04:00
2026-08-13 16:19:57 -04:00
2026-08-18 11:37:44 -04:00
2026-08-11 22:23:55 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-07 15:18:18 -04:00
2026-08-14 10:02:28 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 20:39:58 -04:00
2026-08-14 11:49:01 -04:00