Tom Boucher
7efd9032ee
fix( #4544 ): cover hooks/, scripts/, CHANGELOG and the manifest in codex rollback ( #4760 )
...
* test(#4544 ): failing-first rollback-coverage tests for codex install
* test(#4544 ): scope the rollback suite to its own requires
The appended describe used bare describe/test/os/cleanup and the folded
block's runCodexInstall — none visible at file scope, so the whole test
file failed to load. Wrap it in its own block with local requires and a
local harness copy, matching the folded-block idiom.
* test(#4544 ): import beforeEach/afterTest hooks into the suite scope
* fix(#4544 ): restore manifest-tracked files and hooks/ on codex rollback
restoreCodexSnapshot and _codexPreConfigRollback knew only the five
#3245 targets (config.toml, hooks.json, skills/gsd-*, agents/gsd-*,
VERSION). A Codex install also writes hooks/, gsd-core/CHANGELOG.md,
gsd-core/.gsd-runtime, scripts/changeset|lib + the standalone scripts,
and rewrites gsd-file-manifest.json -- none were captured, so any
rollback left the new payload in place for all of them.
The pre-install capture now records every path the PRIOR install's own
gsd-file-manifest.json lists (bytes when present, absence-marker when
not, so a path deleted between installs is re-deleted rather than
resurrected), the manifest file itself, and the whole hooks/ tree --
wholesale, because the Codex manifest deliberately omits hooks/ and
hooks/ is shared space, so restore returns user files that predated the
install and drops everything the failed install staged. Both rollback
paths share one restore closure; malformed or missing prior state
degrades to today's behavior.
Known residual, documented: files the FAILED install adds under
manifest-tracked dirs survive a rollback that fires before the new
manifest is written (they are named by no prior state). The five
original targets and hooks/ have no residual.
* test(#4544 ): align malformed-manifest fixtures with pre-install-state semantics
Row 7 seeded VERSION and then asserted its absence -- but a seeded
VERSION is pre-install state the fix must restore, not remove. Row 8
asserted a pre-existing array-shaped manifest must not survive, when
restoring those exact bytes IS the contract. Both were fixture bugs;
the probe-verified installer behavior was correct.
* docs(#4544 ): add Fixed changeset for codex rollback coverage
* fix(#4544 ): harden snapshot per adversarial review — minimal mode, symlinks, clean installs
Review (three independent passes) found five defects and one coverage
gap in the first cut; all fixed:
- BLOCKER: the capture gate is off in minimal mode but the restore call
was not, so a minimal-mode rollback wholesale-deleted the user's
entire hooks/ directory (empirically confirmed by the reviewer). The
restore now consults a captured flag: no snapshot means do nothing.
- MAJOR: the hooks/ walk followed file symlinks — a repo-shipped
.codex/hooks symlink to a FIFO would hang the installer, to
/dev/zero exhaust memory, or to private data copy that data into the
snapshot. The walk lstats every entry and captures only true regular
files; anything else marks the capture incomplete.
- Incomplete captures now downgrade the restore to per-file: put back
what was captured, remove only the names GSD itself stages (the
hoisted CODEX_HOOKS_TO_COPY set + CommonJS marker), never wholesale-
delete a tree the snapshot did not fully see. GSD-owned removal runs
before the restore so a name in both sets keeps its pre-install
bytes.
- A pre-existing hooks FILE (not directory) is left alone instead of
deleted.
- readInstallManifest now rejects a manifest whose files field is a
JSON array (typeof [] === 'object'), which previously produced
numeric-key paths.
- Clean FIRST installs: with no prior manifest nothing recorded the
payload, so a failed clean install rolled back to a half-written
tree. Capture now enumerates the same source directories the
installer copies plus the two standalone files (CHANGELOG.md from
the repo root, generated .gsd-runtime) and records absence — a
failed clean install now rolls back to actually nothing.
Tests: minimal-mode preservation regression, symlink never-followed
regression, helpers.cjs temp dirs, the injected-failure message is
asserted, residue assertions made unconditional.
* test(#4544 ): pin symlink-downgrade semantics the final run exposed
The symlink itself marks the capture incomplete, so the restore takes
the per-file downgrade — which preserves uncaptured pre-install state
(the link) rather than wholesale-dropping it. The probe run verified
exactly this; the assertion guessed the wholesale branch. Pin the
verified behavior: referent untouched, link preserved and resolving,
no leak.
* docs(#4544 ): backfill changeset PR number
---------
Co-authored-by: sim <sim@local>
2026-09-15 02:37:18 -04:00
..
2026-06-25 18:24:39 -04:00
2026-09-14 19:32:12 -04:00
2026-09-07 14:31:35 -04:00
2026-09-13 02:35:23 -04:00
2026-06-25 18:24:39 -04:00
2026-09-10 15:50:52 -04:00
2026-07-09 23:43:18 -04:00
2026-06-15 23:21:20 -04:00
2026-09-11 00:42:55 -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-09-11 09:55:55 -04:00
2026-06-13 21:07:55 -04:00
2026-09-14 03:03:44 -04:00
2026-08-09 14:23:35 -04:00
2026-08-27 23:10:49 -04:00
2026-08-05 17:20:56 -04:00
2026-09-12 09:12:31 -04:00
2026-08-19 21:55:18 -04:00
2026-08-31 14:03:48 -04:00
2026-09-12 20:39:16 -04:00
2026-09-12 09:12:31 -04:00
2026-08-31 14:03:48 -04:00
2026-07-13 09:02:44 -06:00
2026-09-10 19:22:04 -04:00
2026-08-23 21:21:21 -04:00
2026-08-23 21:21:21 -04:00
2026-09-01 15:03:20 -04:00
2026-06-13 23:35:08 -04:00
2026-09-09 12:38:59 -04:00
2026-09-05 15:32:52 -04:00
2026-09-05 15:32:52 -04:00
2026-08-29 14:11:39 -04:00
2026-08-13 23:10:52 -04:00
2026-09-04 23:54:02 -04:00
2026-08-27 15:19:01 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 16:03:48 -04:00
2026-09-09 12:38:59 -04:00
2026-09-09 12:38:59 -04:00
2026-09-09 12:38:59 -04:00
2026-09-12 12:31:01 -04:00
2026-09-05 15:32:52 -04:00
2026-08-27 17:28:39 -04: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-07-30 12:48:06 -04:00
2026-09-02 09:46:21 -04:00
2026-09-10 14:11:26 -04:00
2026-09-10 19:22:04 -04:00
2026-09-10 19:22:04 -04:00
2026-09-10 22:46:18 -04:00
2026-07-03 09:17:32 -04:00
2026-09-13 02:35:23 -04:00
2026-09-13 02:35:23 -04:00
2026-08-14 10:02:28 -04:00
2026-08-27 23:27:43 -04:00
2026-08-31 13:44:47 -04:00
2026-08-28 14:44:01 -04:00
2026-08-29 08:53:21 -04:00
2026-08-29 02:51:54 -04:00
2026-09-05 19:03:14 -04:00
2026-08-29 01:14:58 -04:00
2026-08-18 09:23:44 -04:00
2026-09-10 14:11:26 -04:00
2026-08-13 20:31:55 -04:00
2026-08-14 10:02:28 -04:00
2026-09-14 03:03:44 -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-09-07 19:19:03 -04:00
2026-07-24 22:49:29 -04:00
2026-08-03 12:39:16 -04:00
2026-09-13 05:13:42 -04:00
2026-09-01 21:40:38 -04:00
2026-09-05 20:28:51 -04:00
2026-08-10 12:55:52 -04:00
2026-09-13 08:12:54 -04:00
2026-06-18 23:37:43 -04:00
2026-08-18 22:35:54 -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-08-28 14:40:02 -04:00
2026-06-26 12:44:09 -04:00
2026-07-03 19:37:14 -04:00
2026-09-02 11:01:54 -04:00
2026-09-11 09:55:55 -04:00
2026-09-09 21:53:37 -04:00
2026-08-14 21:34:29 -04:00
2026-09-11 09:55:55 -04:00
2026-09-11 09:55:55 -04:00
2026-09-11 09:55:55 -04:00
2026-09-11 09:55:55 -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-09-10 19:22:04 -04:00
2026-07-21 19:32:51 -04:00
2026-08-09 12:27:04 -04:00
2026-08-16 12:59:08 -04:00
2026-09-12 21:33:26 -04:00
2026-09-14 23:44:18 -04:00
2026-09-10 19:22:04 -04:00
2026-09-13 01:22:08 -04:00
2026-09-10 15:50:52 -04:00
2026-08-14 09:27:48 -04:00
2026-08-27 11:37:31 -04:00
2026-08-18 14:11:23 -04:00
2026-09-05 18:57:17 -04:00
2026-08-23 21:21:21 -04:00
2026-09-11 17:00:11 -04:00
2026-08-29 16:13:15 -04:00
2026-09-06 17:29:54 -04:00
2026-09-10 12:46:04 -04:00
2026-09-09 07:05:48 -04:00
2026-09-10 12:46:04 -04:00
2026-09-11 17:00:11 -04:00
2026-08-29 16:13:15 -04:00
2026-09-13 03:44:51 -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-09-14 18:30:47 -04:00
2026-09-05 15:32:52 -04:00
2026-08-28 14:40:02 -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-23 21:21:21 -04:00
2026-07-09 19:38:27 -04:00
2026-08-10 10:18:29 -04:00
2026-08-11 22:23:55 -04:00
2026-08-23 21:21:21 -04:00
2026-09-11 12:26:55 -04:00
2026-06-13 23:35:08 -04:00
2026-08-13 16:19:57 -04:00
2026-09-07 22:52:33 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 00:26:07 -04:00
2026-08-03 19:59:58 -04:00
2026-09-13 02:35:23 -04:00
2026-07-29 19:49:53 -04:00
2026-09-09 08:07:33 -04:00
2026-09-13 02:35:23 -04:00
2026-08-14 13:10:49 -04:00
2026-08-18 09:23:44 -04:00
2026-08-23 21:21:21 -04:00
2026-08-10 01:31:15 -04:00
2026-09-08 14:31:04 -04:00
2026-09-15 02:37:18 -04:00
2026-09-08 14:31:04 -04:00
2026-09-09 12:38:59 -04:00
2026-08-18 09:23:44 -04:00
2026-09-04 23:54:02 -04:00
2026-08-27 00:12:13 -04:00
2026-08-15 23:29:30 -04:00
2026-09-07 10:34:37 -04:00
2026-09-13 10:48:34 -04:00
2026-09-04 23:54:02 -04:00
2026-09-11 15:47:14 -04:00
2026-09-08 19:56:08 -04:00
2026-08-07 21:03:50 -04:00
2026-09-06 19:52:59 -04:00
2026-09-07 16:44:53 -04:00
2026-09-08 14:31:04 -04:00
2026-09-08 14:31:04 -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-23 21:21:21 -04:00
2026-08-27 00:12:13 -04:00
2026-08-14 13:10:49 -04:00
2026-09-06 19:52:59 -04:00
2026-09-12 21:33:26 -04:00
2026-08-27 19:55:34 -04:00
2026-09-15 00:40:15 -04:00
2026-09-07 17:29:22 -04:00
2026-09-14 03:03:44 -04:00
2026-08-27 17:57:05 -04:00
2026-08-29 17:00:52 -04: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-09-01 21:39:37 -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-08-31 14:03:48 -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-09-09 12:38:59 -04:00
2026-08-14 10:02:28 -04:00
2026-09-08 12:39:34 -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-09-10 14:11:26 -04:00
2026-09-10 14:11:26 -04:00
2026-08-23 21:21:21 -04:00
2026-07-30 12:48:06 -04:00
2026-09-13 15:36:08 -04:00
2026-09-14 02:12:46 -04:00
2026-08-27 23:10:49 -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-09-06 02:55:17 -04:00
2026-08-23 21:21:21 -04:00
2026-09-01 21:40:38 -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-09-02 12:19:41 -04:00
2026-08-27 03:31:02 -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-09-04 23:54:02 -04:00
2026-08-12 00:51:19 -04:00
2026-09-13 15:36:08 -04:00
2026-08-26 17:01:09 -04:00
2026-09-13 03:44:51 -04:00
2026-09-04 17:19:16 -04:00
2026-09-05 04:00:08 -04:00
2026-08-13 16:19:57 -04:00
2026-08-26 01:57:47 -04:00
2026-07-31 21:20:46 -04:00
2026-09-09 05:08:20 +00:00
2026-08-27 23:10:49 -04:00
2026-08-14 16:03:48 -04:00
2026-09-01 21:39:53 -04:00
2026-09-01 21:39:53 -04:00
2026-08-31 14:03:48 -04:00
2026-08-27 23:10:49 -04:00
2026-09-12 09:12:31 -04:00
2026-09-10 14:11:26 -04:00
2026-09-10 19:22:04 -04:00
2026-09-10 19:22:04 -04:00
2026-08-07 15:18:18 -04:00
2026-08-01 16:00:14 -04:00
2026-09-10 15:29:08 -04:00
2026-08-07 15:45:51 -04:00
2026-08-07 15:18:18 -04:00
2026-08-31 14:03:48 -04:00
2026-08-08 14:22:10 -04:00
2026-08-09 19:35:34 -04:00
2026-08-27 23:10:49 -04:00
2026-09-02 08:11:23 -04:00
2026-09-04 23:54:02 -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-09-02 04:24:52 -04:00
2026-08-27 23:10:49 -04:00
2026-08-01 14:24:05 -04:00
2026-09-06 18:57:38 -04:00
2026-09-11 15:47:14 -04:00
2026-07-03 09:17:32 -04:00
2026-09-06 17:51:34 -04:00
2026-08-14 10:02:28 -04:00
2026-08-23 21:21:21 -04:00
2026-08-28 13:50:37 -04:00
2026-09-08 14:25:56 -04:00
2026-09-14 23:44:18 -04:00
2026-09-05 15:32:52 -04:00
2026-09-04 16:08:42 -04:00
2026-09-07 10:54:30 -04:00
2026-08-28 14:40:02 -04:00
2026-08-09 23:05:41 -04:00
2026-09-11 17:00:11 -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-07-08 12:57:49 +03:00
2026-08-24 19:05:11 -04:00
2026-08-18 16:40:17 -04:00
2026-09-09 11:45:44 -04:00
2026-07-20 14:59:30 -04:00
2026-09-14 03:03:44 -04:00
2026-08-01 21:27:33 -04:00
2026-08-26 19:29:32 -04:00
2026-08-25 08:36:33 -04:00
2026-06-13 21:07:55 -04:00
2026-06-20 01:59:03 -04:00
2026-09-12 21:33:26 -04:00
2026-09-02 07:33:42 -04:00
2026-09-02 07:33:42 -04:00
2026-09-12 08:42:43 -04:00
2026-08-07 21:03:50 -04:00
2026-09-14 03:50:42 -04:00
2026-07-29 17:06:04 -04:00
2026-09-09 11:45:44 -04:00
2026-08-27 00:12:13 -04:00
2026-08-26 19:29:32 -04:00
2026-08-26 19:29:32 -04:00
2026-07-27 16:50:12 -04:00
2026-09-05 11:17:41 +00:00
2026-09-04 17:47:01 +00:00
2026-09-04 23:54:02 -04:00
2026-08-03 12:16:56 -04:00
2026-09-13 01:22:08 -04:00
2026-08-14 10:02:28 -04:00
2026-09-14 22:22:16 -04:00
2026-09-10 19:22:04 -04:00
2026-09-10 19:22:04 -04:00
2026-08-23 21:21:21 -04:00
2026-09-10 19:22:04 -04:00
2026-09-10 19:22:04 -04:00
2026-07-11 23:24:42 -04:00
2026-09-08 19:56:08 -04:00
2026-09-08 19:56:08 -04:00
2026-07-22 00:27:35 -04:00
2026-08-27 02:24:03 -04:00
2026-09-05 15:32:52 -04:00
2026-08-27 12:15:21 -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-27 23:10:49 -04:00
2026-09-12 09:12:31 -04:00
2026-08-14 13:10:49 -04:00
2026-09-13 15:36:08 -04:00
2026-09-06 17:29:54 -04:00
2026-09-12 21:33:26 -04:00
2026-09-12 21:33:26 -04:00
2026-08-10 11:59:51 -04:00
2026-09-03 09:47:22 -04:00
2026-09-05 15:16:38 -04:00
2026-09-03 09:47:22 -04:00
2026-08-14 10:02:28 -04:00
2026-09-12 08:42:43 -04:00
2026-08-14 10:02:28 -04:00
2026-07-13 11:33:32 -06:00
2026-08-20 00:35:01 -04:00
2026-09-13 00:23:50 -04:00
2026-07-03 08:59:23 -04:00
2026-09-09 07:05:48 -04:00
2026-09-14 05:43:59 -04:00
2026-07-03 12:18:25 -04:00
2026-08-07 10:58:34 -04:00
2026-09-10 15:36:43 -04:00
2026-07-02 18:08:42 -04:00
2026-06-25 18:24:39 -04:00
2026-08-27 17:57:05 -04:00
2026-09-12 21:33:26 -04:00
2026-08-05 21:39:53 -04:00
2026-09-08 19:38:41 -04:00
2026-09-14 23:44:18 -04:00
2026-08-23 21:21:21 -04:00
2026-08-05 17:20:56 -04:00
2026-09-05 15:32:52 -04:00
2026-06-28 11:44:36 -04:00
2026-09-10 14:11:26 -04:00
2026-09-10 15:36:43 -04:00
2026-09-09 05:48:17 +00:00
2026-09-04 11:48:38 -04:00
2026-09-01 21:39:12 -04:00
2026-09-01 21:39:12 -04:00
2026-08-10 09:48:26 -04:00
2026-08-29 09:41:00 -04:00
2026-08-14 10:02:28 -04:00
2026-08-27 00:12:13 -04:00
2026-09-08 12:39:34 -04:00
2026-09-15 00:40:15 -04:00
2026-06-24 17:07:23 -04:00
2026-09-05 06:58:45 -04:00
2026-08-28 23:48:42 -04:00
2026-08-14 10:02:28 -04:00
2026-09-05 15:32:52 -04:00
2026-09-09 11:45:44 -04:00
2026-07-08 21:42:11 -04:00
2026-07-03 10:22:11 -04:00
2026-08-28 18:02:44 -04:00
2026-09-09 11:45:44 -04:00
2026-09-09 11:45:44 -04:00
2026-08-10 15:50:55 -04:00
2026-09-12 13:59:52 -04:00
2026-09-14 22:22:16 -04:00
2026-08-10 15:50:55 -04:00
2026-08-27 02:24:03 -04:00
2026-08-07 13:41:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 23:27:43 -04:00
2026-08-23 21:21:21 -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-27 02:24:03 -04:00
2026-08-11 17:42:41 -04:00
2026-06-16 00:12:54 -04:00
2026-08-27 04:12:47 -04:00
2026-08-05 18:28:04 -04:00
2026-08-22 18:24:25 -04:00
2026-08-13 02:56:12 -04:00
2026-09-06 21:06:48 -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-09-10 14:11:26 -04:00
2026-08-07 15:18:18 -04:00
2026-09-05 04:00:08 -04:00
2026-09-05 04:00:08 -04:00
2026-07-11 00:53:34 -04:00
2026-09-01 21:40:38 -04:00
2026-09-01 22:32:54 -04:00
2026-06-06 22:16:20 +02:00
2026-06-07 01:27:12 +02:00
2026-09-10 14:11:26 -04:00
2026-09-10 14:11:26 -04:00
2026-08-24 09:23:01 -04:00
2026-09-01 21:40:38 -04:00
2026-08-14 13:10:49 -04:00
2026-08-29 18:20:24 -04:00
2026-09-07 09:44:38 -04:00
2026-09-09 18:32:54 -04:00
2026-09-10 19:22:04 -04:00
2026-08-23 21:21:21 -04:00
2026-08-27 03:31:02 -04:00
2026-08-24 21:33:48 -04:00
2026-08-18 14:11:23 -04:00
2026-08-07 15:45:51 -04:00
2026-09-14 19:32:12 -04:00
2026-08-13 11:31:16 -04:00
2026-09-01 17:31:01 -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-09-14 20:50:26 -04:00
2026-08-28 08:06:41 -04:00
2026-08-07 15:45:51 -04:00
2026-08-23 21:21:21 -04:00
2026-08-26 01:57:47 -04:00
2026-08-24 17:56:02 -04:00
2026-09-10 22:46:18 -04:00
2026-08-31 22:31:23 -04:00
2026-08-31 18:08:06 -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-20 15:07:21 -04:00
2026-08-04 22:41:01 -04:00
2026-08-14 13:10:49 -04:00
2026-09-12 21:33:26 -04:00
2026-06-12 21:24:09 -04:00
2026-09-10 15:50:52 -04:00
2026-09-10 15:50:52 -04:00
2026-09-10 15:50:52 -04:00
2026-09-14 18:30:47 -04:00
2026-09-10 15:50:52 -04:00
2026-09-10 15:50:52 -04:00
2026-08-25 20:38:12 -04:00
2026-06-21 14:37:18 -04:00
2026-09-02 08:04:37 -04:00
2026-08-23 21:21:21 -04:00
2026-07-31 13:17:01 -04:00
2026-09-03 01:32:41 -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-09-02 22:38:31 -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-08-29 17:00:45 -04:00
2026-06-15 18:11:20 -04:00
2026-09-12 09:12:31 -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-09-05 23:31:35 -04:00
2026-08-29 17:00:45 -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-26 22:43:14 -04:00
2026-09-02 22:38:31 -04:00
2026-07-03 08:59:23 -04:00
2026-09-14 13:40:17 -04:00
2026-07-07 21:22:48 -04:00
2026-07-22 00:27:35 -04:00
2026-08-26 22:43:14 -04:00
2026-06-25 21:49:22 -04:00
2026-08-26 22:43:14 -04:00
2026-08-26 22:43:14 -04:00
2026-08-26 19:29:32 -04:00
2026-07-30 08:52:56 -04:00
2026-09-08 09:23:20 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 02:47:24 -04:00
2026-09-09 12:38:59 -04:00
2026-06-25 18:24:39 -04:00
2026-08-13 20:27:48 -04:00
2026-08-24 11:47:37 -04:00
2026-08-28 08:49:03 -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-09-10 19:22:04 -04:00
2026-08-12 20:08:35 -04:00
2026-06-25 15:26:23 -04:00
2026-08-18 16:40:17 -04:00
2026-09-09 21:55:51 -04:00
2026-08-28 14:40:02 -04:00
2026-09-03 14:14:09 -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-09-12 22:17:46 -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-09-04 10:02:17 -04:00
2026-09-09 11:45:44 -04:00
2026-09-09 16:26:25 -04:00
2026-09-14 19:32:12 -04:00
2026-08-23 21:21:21 -04:00
2026-08-23 21:21:21 -04:00
2026-08-05 17:20:56 -04:00
2026-08-14 15:57:25 -04:00
2026-09-10 14:11:26 -04:00
2026-07-30 15:27:52 -04:00
2026-08-14 13:10:49 -04:00
2026-09-02 08:11:23 -04:00
2026-08-29 17:24:40 -04:00
2026-08-11 23:55:11 -04:00
2026-08-28 08:07:24 -04:00
2026-06-05 17:58:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-25 18:24:39 -04:00
2026-09-09 11:45:44 -04:00
2026-08-22 17:52:23 -04:00
2026-09-04 16:03:42 -04:00
2026-09-05 15:32:52 -04:00
2026-09-12 09:12:31 -04:00
2026-09-01 13:03:33 -04:00
2026-08-27 23:10:49 -04:00
2026-06-15 18:11:20 -04:00
2026-09-12 21:33:26 -04:00
2026-09-12 21:33:26 -04:00
2026-06-22 12:33:13 -04:00
2026-06-12 19:51:54 -04:00
2026-09-13 01:22:08 -04:00
2026-06-13 21:07:55 -04:00
2026-09-02 11:01:54 -04:00
2026-07-28 18:02:17 -04:00
2026-08-14 13:10:49 -04:00
2026-08-27 15:19:01 -04:00
2026-07-26 21:42:50 -04:00
2026-09-11 15:47:14 -04:00
2026-09-11 12:42:04 -04:00
2026-09-11 00:42:55 -04:00
2026-09-04 23:54:02 -04:00
2026-08-29 17:00:45 -04:00
2026-09-04 14:14:56 -04:00
2026-09-15 00:40:15 -04:00
2026-07-03 01:55:48 -04:00
2026-09-12 21:33:26 -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-08-27 00:12:13 -04:00
2026-08-31 19:08:11 -04:00
2026-08-27 14:44:26 -04:00
2026-09-04 14:14:56 -04:00
2026-09-05 15:16:38 -04:00
2026-08-14 10:02:28 -04:00
2026-09-13 02:35:23 -04:00
2026-08-27 23:10:49 -04:00
2026-09-14 23:44:18 -04:00
2026-09-14 03:03:44 -04:00
2026-08-14 10:02:28 -04:00
2026-07-26 14:29:02 -04:00
2026-08-27 23:10:49 -04:00
2026-08-28 14:40:02 -04:00
2026-08-22 13:17:51 -04:00
2026-08-14 11:04:55 -04:00
2026-08-20 16:15:22 -04:00
2026-08-12 22:54:30 -04:00
2026-09-07 14:31:35 -04:00
2026-09-15 00:40:15 -04:00
2026-09-11 17:00:11 -04:00
2026-06-25 14:37:10 -04:00
2026-08-03 19:59:58 -04:00
2026-09-09 11:45:44 -04:00
2026-08-05 17:20:56 -04:00
2026-09-13 01:22:08 -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-09-09 21:55:51 -04:00
2026-09-01 21:40:38 -04:00
2026-09-05 04:00:08 -04:00
2026-08-15 07:02:33 -04:00
2026-09-09 07:05:48 -04:00
2026-08-09 21:38:53 -04:00
2026-08-23 21:21:21 -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-09-08 19:38:41 -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-28 11:40:34 -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-09-13 01:22:08 -04:00
2026-08-27 23:10:49 -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-09-14 22:22:16 -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-06 11:24:48 -04:00
2026-09-10 17:09:23 -04:00
2026-09-05 03:14:27 -04:00
2026-08-07 15:18:18 -04:00
2026-09-03 09:47:22 -04:00
2026-09-02 22:38:31 -04:00
2026-09-03 09:47:22 -04:00
2026-09-02 22:38:31 -04:00
2026-09-12 09:12:31 -04:00
2026-08-23 21:21:21 -04:00
2026-08-14 16:03:48 -04:00
2026-09-01 21:16:57 -04:00
2026-08-28 12:31:02 -04:00
2026-09-04 10:22:10 -04:00
2026-09-09 10:12:06 -04:00
2026-08-14 13:10:49 -04:00
2026-07-10 15:44:19 -04:00
2026-09-05 15:32:52 -04:00
2026-08-20 15:07:21 -04:00
2026-09-10 15:36:43 -04:00
2026-09-10 17:09:23 -04:00
2026-09-10 17:09:23 -04:00
2026-08-14 10:02:28 -04:00
2026-09-06 02:55:41 -04:00
2026-09-09 07:05:48 -04:00
2026-08-20 13:42:43 -04:00
2026-09-13 05:13:42 -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-09-05 18:49:35 -04:00
2026-07-19 14:33:19 -04:00
2026-08-07 15:18:18 -04:00
2026-09-05 18:49:35 -04:00
2026-09-11 17:00:11 -04:00
2026-08-27 17:28:39 -04:00
2026-09-05 07:37:13 -04:00
2026-09-01 21:40:38 -04:00
2026-09-10 19:22:04 -04:00
2026-06-25 23:55:58 -04:00
2026-09-03 14:14:09 -04:00
2026-08-09 21:38:53 -04:00
2026-09-02 15:56:43 -04:00
2026-06-25 18:24:39 -04:00
2026-08-20 14:35:14 -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-09-07 16:44:53 -04:00
2026-08-23 22:38:12 -04:00
2026-08-03 12:05:45 -04:00
2026-08-27 23:10:49 -04:00
2026-09-01 22:40:23 -04:00
2026-09-14 03:03:44 -04:00
2026-08-14 13:10:49 -04:00
2026-09-14 03:03:44 -04:00
2026-09-14 03:03:44 -04:00
2026-09-14 03:03:44 -04:00
2026-08-14 02:34:29 -04:00
2026-09-14 03:03:44 -04:00
2026-09-13 23:58:38 -04:00
2026-08-31 18:08:06 -04:00
2026-06-26 23:35:04 -04:00
2026-06-26 23:35:04 -04:00
2026-09-14 03:03:44 -04:00
2026-08-10 20:51:40 -04:00
2026-09-14 03:03:44 -04:00
2026-09-14 03:03:44 -04:00
2026-09-14 03:03:44 -04:00
2026-09-13 02:35:23 -04:00
2026-09-07 22:52:33 -04:00
2026-09-13 02:35:23 -04:00
2026-09-05 15:16:38 -04:00
2026-08-14 01:44:54 -04:00
2026-09-11 12:42:04 -04:00
2026-06-30 20:43:25 -04:00
2026-08-07 15:18:18 -04:00
2026-09-09 14:50:02 -04:00
2026-08-28 15:55:55 -04:00
2026-08-05 17:20:56 -04:00
2026-09-14 12:30:51 -04:00
2026-09-13 03:44:51 -04:00
2026-09-08 19:38:41 -04:00
2026-06-21 20:40:13 -04:00
2026-08-17 17:25:53 -04:00
2026-09-05 15:32:52 -04:00
2026-09-06 15:11:47 -04:00
2026-08-09 22:25:42 -04:00
2026-09-05 15:32:52 -04:00
2026-08-01 16:00:14 -04:00
2026-08-14 19:02:14 -04:00
2026-09-14 15:11:27 -04:00
2026-07-22 00:27:35 -04:00
2026-08-14 15:57:25 -04:00
2026-09-14 22:22:16 -04:00
2026-07-03 08:59:23 -04:00
2026-08-25 11:36:59 -04:00
2026-07-06 08:31:51 -04:00
2026-09-14 03:50:42 -04:00
2026-08-27 23:10:49 -04:00
2026-09-14 22:22:16 -04:00
2026-09-14 00:57:08 -04:00
2026-06-24 17:03:01 -04:00
2026-07-02 21:45:35 -04:00
2026-09-10 17:09:23 -04:00
2026-08-10 13:45:20 -04:00
2026-08-27 00:12:13 -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-09-12 13:59:52 -04:00
2026-09-10 17:09:23 -04:00
2026-09-12 12:31:01 -04:00
2026-07-03 09:17:32 -04:00
2026-07-03 08:59:23 -04:00
2026-09-14 03:03:44 -04:00
2026-09-02 08:11:23 -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-09-10 14:11:26 -04:00
2026-09-13 03:44:51 -04:00
2026-08-29 14:37:21 -04:00
2026-07-13 15:36:17 -04:00
2026-08-11 22:23:55 -04:00
2026-09-09 07:05:48 -04:00
2026-08-23 21:21:21 -04:00
2026-09-04 21:12:12 -04:00
2026-08-14 10:02:28 -04:00
2026-09-13 22:17:48 -04:00
2026-09-13 22:17:48 -04:00
2026-09-02 20:47:34 -04:00
2026-08-12 20:46:12 -04:00
2026-09-01 13:58:20 -04:00
2026-08-03 19:59:58 -04:00
2026-07-31 10:20:17 -04:00
2026-09-02 20:47:34 -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-29 17:00:45 -04:00
2026-08-24 17:56:02 -04:00
2026-09-12 09:12:31 -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-09-04 23:54:02 -04:00
2026-08-06 23:57:05 -04:00
2026-09-12 09:12:31 -04:00
2026-09-14 21:43:49 -04:00
2026-09-14 21:43:49 -04:00
2026-09-10 20:29:10 -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-09-03 05:43:16 -04:00
2026-08-14 10:24:05 -04:00
2026-07-05 18:01:28 -04:00
2026-09-05 15:32:52 -04:00
2026-06-12 13:29:45 -04:00
2026-09-13 23:08:20 -04:00
2026-07-14 14:25:44 -04:00
2026-09-12 23:21:21 -04:00
2026-09-12 23:21:21 -04:00
2026-09-12 23:21:21 -04:00
2026-09-04 19:48:14 -04:00
2026-06-13 21:07:55 -04:00
2026-09-04 16:44:38 -04:00
2026-09-04 19:13:56 -04:00
2026-09-04 21:35:30 -04:00
2026-09-04 20:17:36 -04:00
2026-09-13 00:23:50 -04:00
2026-06-15 18:11:20 -04:00
2026-08-14 11:22:51 -04:00
2026-08-23 21:21:21 -04:00
2026-08-13 21:22:03 -04:00
2026-09-05 15:32:52 -04:00
2026-08-13 20:27:48 -04:00
2026-09-09 00:58:23 +00: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-09-07 08:24:14 -04:00
2026-08-13 23:08:34 -04:00
2026-08-27 23:10:49 -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-26 20:17:35 -04:00
2026-09-04 17:47:01 +00: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-08-27 23:10:49 -04:00
2026-08-14 09:27:48 -04:00
2026-08-27 23:10:49 -04:00
2026-09-15 01:41:35 -04:00
2026-08-27 00:12:13 -04:00
2026-08-23 21:21:21 -04:00
2026-06-24 17:07:23 -04:00
2026-08-22 18:57:19 -04:00
2026-09-06 14:09:32 -04:00
2026-09-13 02:16:40 +00:00
2026-09-05 04:17:21 -04:00
2026-08-17 17:25:53 -04:00
2026-08-07 15:45:51 -04:00
2026-09-12 20:39:16 -04:00
2026-08-27 23:10:49 -04:00
2026-08-27 23:10:49 -04:00
2026-08-13 21:22:03 -04:00
2026-08-30 16:51:52 -04:00
2026-06-07 00:46:27 -04:00
2026-08-29 07:44:22 -04:00
2026-08-19 15:21:15 -04:00
2026-08-17 15:56:46 -04:00
2026-08-13 21:22:03 -04:00
2026-08-13 21:22:03 -04:00
2026-08-03 19:59:58 -04:00
2026-09-14 20:40:46 -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-09-14 15:11:27 -04:00
2026-06-07 12:24:04 -04:00
2026-09-02 00:01:55 -04:00
2026-09-02 22:38:31 -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-09-01 22:32:54 -04:00
2026-08-27 23:10:49 -04:00
2026-08-09 21:38:53 -04:00
2026-08-05 17:20:56 -04:00
2026-09-07 22:04:48 -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-26 16:03:11 -04:00
2026-09-08 06:26:54 -04:00
2026-08-18 11:37:44 -04:00
2026-09-04 23:54:02 -04:00
2026-08-07 15:18:18 -04:00
2026-08-27 23:10:49 -04:00
2026-08-07 15:18:18 -04:00
2026-09-09 07:05:48 -04:00
2026-08-23 21:21:21 -04:00
2026-07-13 20:39:58 -04:00
2026-09-05 04:52:45 -04:00