8ab733471b
v0.41.17.0 feat: --workers N on every bulk command + facts dim doctor parity ( #1519 )
...
* feat(worker-pool): shared sliding pool + bounded semaphore + PGLite-clamp wrapper
T1 + T2 of the v0.41.16.0 workers cathedral. New src/core/worker-pool.ts is
the canonical primitive every --workers N bulk command in this wave (and
future bulk commands) builds on. Atomic-claim invariant enforced by
scripts/check-worker-pool-atomicity.sh (wired into bun run verify).
BudgetExhausted bypass + AbortSignal composition baked into the helper so
budget caps are a structural ceiling under concurrency, not a per-caller
convention.
The new resolveWorkersWithClamp wrapper composes existing autoConcurrency
with PGLite-clamp + per-(command, requested) stderr dedup. Deliberately
NOT a modification to shared autoConcurrency (silent today, used by sync
+ import); embed.ts keeps GBRAIN_EMBED_CONCURRENCY || 20 default per
codex #13 .
23 + 12 + 9 = 44 hermetic tests pin every contract.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
* test: structural + dim-check regression suites for v0.41.16.0 wave
- test/embed-helper-migration.test.ts (T3): asserts embed.ts's two
sliding-pool sites are migrated to runSlidingPool, pre-migration
shapes (let nextIdx = 0, Promise.all(Array.from(...))) are gone,
GBRAIN_EMBED_CONCURRENCY || 20 default preserved, failureLabel
threads page.slug. Per codex #16/#17 these are invariant assertions,
not byte-equality on progress event ORDERING.
- test/embedding-dim-check-facts.test.ts (T6): readFactsEmbeddingDim
covers vector(N) + halfvec(N), halfvec-before-vector regex ordering
pinned (codex #19 ), buildFactsAlterRecipe emits DROP INDEX + ALTER
USING + CREATE INDEX (codex #18 , not bare REINDEX),
FactsEmbeddingDimMismatchError tagged class shape,
assertFactsEmbeddingDimMatchesConfig PGLite skip + Postgres absent-
column skip, doctor check + insert-cast wiring assertions.
- test/extract-conversation-facts-workers.test.ts (T5): helper
exports (extractConversationFactsLockId, PER_PAGE_LOCK_TTL_MINUTES),
structural wiring (runSlidingPool, resolveWorkersWithClamp,
withRefreshingLock, LockUnavailableError, delete-orphans-first
before segment loop, preflight before pool, exit 3 when lock_skipped
> 0), Minion handler round-trip.
- test/extract-workers.test.ts (T7): --workers wiring on all 3 inner
fs-walk loops (extractForSlugs, extractLinksFromDir,
extractTimelineFromDir) + CLI parse + opts threading through
runExtractCore.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
* chore: rebump v0.41.16.0 → v0.41.17.0 (queue collision with PR #1510 )
PR #1510 (garrytan/dynamic-regex-conversation-formats) claimed v0.41.16.0
on master in parallel. Advancing this wave to v0.41.17.0 so both can land
cleanly. Pure mechanical version bump:
- VERSION + package.json → 0.41.17.0
- CHANGELOG.md header + "To take advantage of v0.41.17.0" block
- TODOS.md section header + v0.41.18+ forward references
- CLAUDE.md inline version tags
- Regenerated llms-full.txt / llms.txt
No code changes. The actual workers cathedral feature set is unchanged
from the two prior commits in this branch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
* fix(test): search-image-column probes column dim at runtime
CI shard 5 failed on `searchVector column routing (v0.27.1)` with:
error: expected 1280 dimensions, not 1536
The test had a hardcoded `fakeText1536` helper that seeded chunks at
1536-d vectors. Master's default embedding model switched from OpenAI
text-embedding-3-large (1536) to ZeroEntropy zembed-1 (1280) so a fresh
PGLite brain on CI now sizes content_chunks.embedding at 1280; the
test's 1536-d INSERT trips pgvector's CheckExpectedDim.
Fix: probe `content_chunks.embedding` width via
`readContentChunksEmbeddingDim(engine)` in `beforeAll`, store in
`TEXT_DIM`, and build `fakeTextDefault(seed)` at that width. The test
now passes regardless of which default ships (the model has flipped
twice and may flip again). Local dev (1536 from older config) and CI
fresh-install (1280 from new default) both pass.
Image-side vectors stay at 1024 (matches Voyage multimodal-3 + the
column's fixed width on the image side).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
* fix(test): bump PGLite hook timeout for shard-4 deep-process files
facts-anti-loop.test.ts and ingest-capture.test.ts were timing out in CI
shard 4 with "beforeEach/afterEach hook timed out" after the v0.41.16.0
master merge brought migration count to 99. When these files run deep in
a shard process that has already created ~20 PGLite engines, the WASM
cold-start + 95-migration replay legitimately exceeds bun's 5s default
hook timeout (observed 5.6s and 7.3s locally when reproducing).
Bun's --timeout=60000 from scripts/test-shard.sh covers TEST timeouts
but NOT hook timeouts; those default to 5s and must be set per-hook via
the optional 2nd arg to beforeAll/afterAll.
Reproduced locally by running the first 21 shard-4 files via
head -21 /tmp/shard4-list.txt | xargs bun test
→ 179 pass, 2 fail (both with hook-timeout error)
After fix:
→ 198 pass, 0 fail (the 4 anti-loop + 15 ingest-capture tests recover)
Full shard 4 with fix: 955 pass, 0 fail.
Full shard 5 with fix: 1261 pass, 0 fail.
Also added a defensive diagnostic to the two put_page tests: if
facts_backstop is missing in the response payload, throw with the full
payload + isError so future failures surface the actual handler error
instead of a bare "expected {...} got undefined" assertion. No-op when
the test passes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 18:29:03 -07:00
..
2026-05-25 12:48:55 -07:00
2026-05-25 14:43:12 -07:00
2026-05-24 21:50:08 -07:00
2026-05-22 11:53:11 -07:00
2026-05-24 09:30:57 -07:00
2026-05-14 19:13:14 -07:00
2026-05-22 21:18:09 -07:00
2026-05-26 17:31:48 -07:00
2026-05-25 15:21:59 -07:00
2026-05-25 15:10:23 -07:00
2026-05-26 17:31:48 -07:00
2026-05-17 18:52:38 -07:00
2026-05-26 17:31:48 -07:00
2026-05-20 20:25:41 -07:00
2026-05-25 15:46:25 -07:00
2026-05-26 18:29:03 -07:00
2026-05-22 09:10:20 -07:00
2026-05-26 17:31:48 -07:00
2026-05-22 22:37:15 -07:00
2026-05-26 18:29:03 -07:00
2026-05-24 22:56:21 -07:00
2026-05-22 13:38:07 -07:00
2026-05-22 09:10:20 -07:00
2026-05-18 20:55:57 -07:00
2026-05-22 09:10:20 -07:00
2026-04-29 23:46:36 -07:00
2026-05-07 21:52:58 -07:00
2026-05-10 20:06:31 -07:00
2026-05-18 20:55:57 -07:00
2026-05-18 20:55:57 -07:00
2026-05-02 08:41:11 -07:00
2026-05-22 13:38:07 -07:00
2026-05-18 21:11:02 -07:00
2026-05-11 22:54:35 -07:00
2026-05-23 08:49:28 -07:00
2026-05-25 09:57:30 -07:00
2026-05-06 21:14:34 -07:00
2026-05-18 20:55:57 -07:00
2026-05-22 21:04:30 -07:00
2026-05-22 21:04:30 -07:00
2026-05-22 21:04:30 -07:00
2026-05-18 20:55:57 -07:00
2026-05-21 08:29:55 -07:00
2026-05-24 21:50:08 -07:00
2026-05-21 08:29:55 -07:00
2026-04-21 18:35:45 -07:00
2026-05-14 21:06:42 -07:00
2026-05-08 13:25:48 -07:00
2026-05-08 13:25:48 -07:00
2026-05-25 14:56:38 -07:00
2026-05-18 20:55:57 -07:00
2026-04-14 19:41:34 -10:00
2026-05-18 21:11:02 -07:00
2026-05-24 11:37:03 -07:00
2026-05-24 21:50:08 -07:00
2026-04-22 01:34:22 -07:00
2026-05-14 19:13:14 -07:00
2026-05-14 19:13:14 -07:00
2026-05-07 21:52:58 -07:00
2026-05-14 20:15:29 -07:00
2026-04-30 20:47:32 -07:00
2026-05-07 21:52:58 -07:00
2026-05-10 20:50:40 -07:00
2026-05-02 22:01:05 -07:00
2026-05-21 18:57:05 -07:00
2026-05-25 10:39:09 -07:00
2026-05-23 18:43:10 -07:00
2026-05-22 09:29:59 -07:00
2026-05-22 09:29:59 -07:00
2026-05-22 21:18:09 -07:00
2026-05-22 11:53:11 -07:00
2026-05-24 11:37:03 -07:00
2026-04-21 11:51:32 -07:00
2026-05-25 14:56:38 -07:00
2026-05-18 19:34:44 -07:00
2026-05-20 09:19:18 -07:00
2026-05-22 13:38:07 -07:00
2026-05-22 21:18:09 -07:00
2026-05-22 21:18:09 -07:00
2026-04-25 12:25:34 -07:00
2026-05-25 20:00:03 -07:00
2026-05-25 13:58:26 -07:00
2026-05-25 20:00:03 -07:00
2026-05-24 09:30:57 -07:00
2026-04-09 12:25:04 -10:00
2026-05-14 21:06:42 -07:00
2026-04-25 12:25:34 -07:00
2026-05-14 19:13:14 -07:00
2026-04-25 12:25:34 -07:00
2026-05-11 22:54:35 -07:00
2026-04-29 23:46:36 -07:00
2026-05-18 20:55:57 -07:00
2026-05-09 19:47:56 -07:00
2026-05-25 19:53:59 -07:00
2026-05-22 21:18:09 -07:00
2026-05-07 13:41:46 -07:00
2026-05-23 10:01:08 -07:00
2026-05-02 08:41:11 -07:00
2026-05-07 10:03:38 -07:00
2026-05-25 14:20:19 -07:00
2026-05-25 20:00:03 -07:00
2026-04-25 12:25:34 -07:00
2026-04-25 12:25:34 -07:00
2026-04-25 12:25:34 -07:00
2026-05-14 19:50:50 -04:00
2026-05-13 13:14:58 -04:00
2026-05-19 13:12:40 -07:00
2026-05-09 22:58:19 -07:00
2026-05-21 18:57:05 -07:00
2026-05-13 13:14:58 -04:00
2026-05-18 20:55:57 -07:00
2026-05-25 12:48:55 -07:00
2026-04-26 15:49:48 -07:00
2026-05-23 10:57:32 -07:00
2026-05-18 21:11:02 -07:00
2026-05-24 10:49:56 -07:00
2026-05-24 10:49:56 -07:00
2026-05-11 21:49:57 -07:00
2026-05-23 08:49:28 -07:00
2026-05-23 08:49:28 -07:00
2026-05-23 08:49:28 -07:00
2026-05-26 17:31:48 -07:00
2026-05-18 21:26:12 -07:00
2026-05-18 19:34:44 -07:00
2026-05-06 20:39:56 -07:00
2026-05-06 20:39:56 -07:00
2026-05-06 20:39:56 -07:00
2026-05-21 22:11:00 -07:00
2026-05-23 10:01:08 -07:00
2026-05-19 17:14:53 -07:00
2026-05-22 21:04:30 -07:00
2026-05-09 16:57:47 -07:00
2026-05-22 21:04:30 -07:00
2026-05-23 18:43:10 -07:00
2026-05-22 21:04:30 -07:00
2026-05-24 22:56:21 -07:00
2026-04-30 01:23:29 -07:00
2026-05-22 21:04:30 -07:00
2026-05-25 12:48:55 -07:00
2026-05-25 14:56:38 -07:00
2026-05-09 20:46:34 -07:00
2026-05-11 23:02:03 -07:00
2026-05-09 20:46:34 -07:00
2026-04-14 19:41:34 -10:00
2026-05-24 11:37:03 -07:00
2026-05-25 14:43:12 -07:00
2026-05-23 10:21:59 -07:00
2026-05-08 13:25:48 -07:00
2026-04-22 16:24:23 -07:00
2026-05-03 20:41:39 -07:00
2026-04-29 22:21:07 -07:00
2026-05-22 13:38:07 -07:00
2026-05-23 18:43:10 -07:00
2026-05-18 19:34:44 -07:00
2026-05-18 20:55:57 -07:00
2026-05-23 18:43:10 -07:00
2026-05-22 21:04:30 -07:00
2026-05-22 21:04:30 -07:00
2026-05-25 15:10:23 -07:00
2026-05-23 10:21:59 -07:00
2026-04-20 21:54:36 +08:00
2026-05-22 09:29:59 -07:00
2026-05-19 13:12:40 -07:00
2026-04-26 15:49:48 -07:00
2026-05-25 14:56:38 -07:00
2026-05-21 22:11:00 -07:00
2026-05-21 18:57:05 -07:00
2026-05-13 13:14:58 -04:00
2026-05-24 11:37:03 -07:00
2026-05-21 08:29:55 -07:00
2026-05-26 17:31:48 -07:00
2026-05-21 22:11:00 -07:00
2026-05-23 10:01:08 -07:00
2026-05-24 22:56:21 -07:00
2026-04-30 01:23:29 -07:00
2026-05-02 22:01:05 -07:00
2026-05-13 13:14:58 -04:00
2026-04-20 21:54:36 +08:00
2026-05-14 19:13:14 -07:00
2026-05-07 21:52:58 -07:00
2026-05-23 10:21:59 -07:00
2026-05-26 18:29:03 -07:00
2026-05-19 17:14:53 -07:00
2026-05-25 14:43:12 -07:00
2026-05-24 10:49:56 -07:00
2026-05-23 10:21:59 -07:00
2026-05-25 14:43:12 -07:00
2026-05-23 08:49:28 -07:00
2026-05-26 18:29:03 -07:00
2026-05-21 22:11:00 -07:00
2026-05-15 18:54:36 -07:00
2026-05-07 21:52:58 -07:00
2026-04-11 00:01:09 -10:00
2026-05-22 22:37:15 -07:00
2026-05-22 22:37:15 -07:00
2026-05-07 10:03:38 -07:00
2026-05-10 06:34:40 -07:00
2026-05-22 13:38:07 -07:00
2026-04-14 19:41:34 -10:00
2026-05-11 23:02:03 -07:00
2026-05-17 08:51:33 -07:00
2026-05-22 22:37:15 -07:00
2026-05-24 11:37:03 -07:00
2026-04-25 12:25:34 -07:00
2026-05-01 09:02:43 -07:00
2026-05-01 09:02:43 -07:00
2026-05-01 09:02:43 -07:00
2026-05-13 13:14:58 -04:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-18 19:34:44 -07:00
2026-05-11 22:42:54 -07:00
2026-05-17 08:32:03 -07:00
2026-05-11 22:42:54 -07:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-11 22:42:54 -07:00
2026-05-17 08:32:03 -07:00
2026-05-11 22:42:54 -07:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-17 08:32:03 -07:00
2026-05-26 17:31:48 -07:00
2026-05-26 18:29:03 -07:00
2026-05-01 09:02:43 -07:00
2026-05-24 21:50:08 -07:00
2026-05-25 15:46:25 -07:00
2026-05-25 15:46:25 -07:00
2026-05-01 09:02:43 -07:00
2026-05-22 22:16:25 -07:00
2026-05-24 21:50:08 -07:00
2026-05-01 09:02:43 -07:00
2026-05-13 13:14:58 -04:00
2026-05-22 13:38:07 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-17 18:52:38 -07:00
2026-05-24 22:56:21 -07:00
2026-05-12 14:33:29 -07:00
2026-04-13 21:03:40 -10:00
2026-05-17 14:27:31 -07:00
2026-05-22 13:38:07 -07:00
2026-05-25 15:10:23 -07:00
2026-05-25 15:10:23 -07:00
2026-05-25 14:56:38 -07:00
2026-05-26 18:29:03 -07:00
2026-05-25 15:21:59 -07:00
2026-05-02 22:01:05 -07:00
2026-05-18 20:55:57 -07:00
2026-05-11 19:25:48 -07:00
2026-05-09 20:46:34 -07:00
2026-04-29 10:12:10 -07:00
2026-05-21 08:29:55 -07:00
2026-05-10 06:34:40 -07:00
2026-05-06 21:14:34 -07:00
2026-05-26 18:29:03 -07:00
2026-05-09 20:46:34 -07:00
2026-05-25 15:21:59 -07:00
2026-05-22 21:18:09 -07:00
2026-05-26 18:29:03 -07:00
2026-05-09 16:57:47 -07:00
2026-05-10 12:49:14 -07:00
2026-05-17 08:51:33 -07:00
2026-05-09 16:57:47 -07:00
2026-05-10 12:49:14 -07:00
2026-05-09 16:57:47 -07:00
2026-05-10 12:49:14 -07:00
2026-05-09 16:57:47 -07:00
2026-05-10 12:49:14 -07:00
2026-05-10 12:49:14 -07:00
2026-05-10 20:06:31 -07:00
2026-05-10 12:49:14 -07:00
2026-05-10 12:49:14 -07:00
2026-05-17 18:52:38 -07:00
2026-05-11 19:25:48 -07:00
2026-05-11 19:25:48 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-05-09 16:57:47 -07:00
2026-04-20 07:30:00 +08:00
2026-05-23 10:21:59 -07:00
2026-04-14 21:40:48 -10:00
2026-04-25 12:25:34 -07:00
2026-05-17 08:51:33 -07:00
2026-04-09 10:17:13 -07:00
2026-04-13 07:49:13 -10:00
2026-04-16 23:03:15 -07:00
2026-04-13 07:49:13 -10:00
2026-04-23 19:34:27 -07:00
2026-05-25 14:20:19 -07:00
2026-05-25 14:20:19 -07:00
2026-05-22 22:37:15 -07:00
2026-04-29 23:46:36 -07:00
2026-04-29 23:46:36 -07:00
2026-05-18 20:55:57 -07:00
2026-05-21 09:26:37 -07:00
2026-05-25 12:48:55 -07:00
2026-05-18 21:26:12 -07:00
2026-05-24 11:37:03 -07:00
2026-05-14 19:13:14 -07:00
2026-05-17 08:00:29 -07:00
2026-05-18 19:34:44 -07:00
2026-05-18 19:34:44 -07:00
2026-05-21 08:29:55 -07:00
2026-05-18 19:34:44 -07:00
2026-05-23 10:21:59 -07:00
2026-04-29 22:13:05 -07:00
2026-05-25 09:57:30 -07:00
2026-05-25 15:46:25 -07:00
2026-05-13 13:14:58 -04:00
2026-05-14 20:51:11 -07:00
2026-05-25 19:53:59 -07:00
2026-05-24 10:49:56 -07:00
2026-05-22 21:18:09 -07:00
2026-05-07 10:03:38 -07:00
2026-05-14 20:51:11 -07:00
2026-05-21 08:29:55 -07:00
2026-04-12 07:48:47 -10:00
2026-04-25 12:25:34 -07:00
2026-05-22 13:38:07 -07:00
2026-05-21 18:57:05 -07:00
2026-05-07 22:56:22 -07:00
2026-04-18 16:57:38 +08:00
2026-05-13 13:14:58 -04:00
2026-05-21 18:57:05 -07:00
2026-05-11 19:25:48 -07:00
2026-05-22 21:54:13 -07:00
2026-04-16 23:03:15 -07:00
2026-04-22 01:34:22 -07:00
2026-05-13 13:14:58 -04:00
2026-05-24 11:37:03 -07:00
2026-04-25 12:25:34 -07:00
2026-05-25 14:20:19 -07:00
2026-05-24 11:37:03 -07:00
2026-05-24 22:56:21 -07:00
2026-05-21 18:57:05 -07:00
2026-04-25 12:25:34 -07:00
2026-05-11 21:49:57 -07:00
2026-05-22 13:38:07 -07:00
2026-05-24 10:49:56 -07:00
2026-04-26 20:45:05 -07:00
2026-04-11 21:25:44 -10:00
2026-05-22 21:04:30 -07:00
2026-05-19 17:14:53 -07:00
2026-05-22 09:10:20 -07:00
2026-05-25 15:10:23 -07:00
2026-05-22 22:37:15 -07:00
2026-05-22 22:37:15 -07:00
2026-05-07 19:49:46 -07:00
2026-05-24 09:30:57 -07:00
2026-05-22 08:00:42 -07:00
2026-05-21 09:26:37 -07:00
2026-04-24 00:08:54 -07:00
2026-05-09 19:47:56 -07:00
2026-05-07 22:56:22 -07:00
2026-05-04 21:11:15 -07:00
2026-05-18 20:55:57 -07:00
2026-05-17 08:00:29 -07:00
2026-05-13 13:14:58 -04:00
2026-05-08 13:25:48 -07:00
2026-05-25 14:43:12 -07:00
2026-05-22 22:37:15 -07:00
2026-04-26 20:45:05 -07:00
2026-05-10 12:49:14 -07:00
2026-05-09 20:46:34 -07:00
2026-05-09 20:46:34 -07:00
2026-05-11 22:54:35 -07:00
2026-04-18 16:57:38 +08:00
2026-04-18 16:57:38 +08:00
2026-04-18 18:16:18 +08:00
2026-04-19 07:14:24 +08:00
2026-04-22 01:34:22 -07:00
2026-04-20 07:30:00 +08:00
2026-04-29 23:46:36 -07:00
2026-04-22 01:34:22 -07:00
2026-04-25 12:25:34 -07:00
2026-04-25 12:25:34 -07:00
2026-05-22 09:29:59 -07:00
2026-05-07 10:03:38 -07:00
2026-05-11 19:25:48 -07:00
2026-05-10 06:34:40 -07:00
2026-05-24 22:56:21 -07:00
2026-05-26 17:31:48 -07:00
2026-05-24 11:37:03 -07:00
2026-04-22 01:34:22 -07:00
2026-05-19 13:12:40 -07:00
2026-05-19 13:12:40 -07:00
2026-05-19 13:12:40 -07:00
2026-04-24 01:09:28 -07:00
2026-04-29 23:06:16 -07:00
2026-05-23 08:49:28 -07:00
2026-05-22 09:10:20 -07:00
2026-05-25 10:39:09 -07:00
2026-05-25 10:39:09 -07:00
2026-05-02 22:01:05 -07:00
2026-05-23 08:49:28 -07:00
2026-05-10 13:33:05 -07:00
2026-05-03 20:41:39 -07:00
2026-05-22 22:16:25 -07:00
2026-05-10 12:49:14 -07:00
2026-05-18 19:34:44 -07:00
2026-05-25 09:57:30 -07:00
2026-05-09 19:47:56 -07:00
2026-05-25 09:57:30 -07:00
2026-05-19 10:05:31 -07:00
2026-05-18 21:11:02 -07:00
2026-05-14 19:13:14 -07:00
2026-04-30 01:23:29 -07:00
2026-05-07 21:52:58 -07:00
2026-05-18 21:26:12 -07:00
2026-05-25 15:10:23 -07:00
2026-05-25 19:53:59 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 18:43:10 -07:00
2026-05-25 14:56:38 -07:00
2026-05-17 14:02:45 -07:00
2026-05-06 21:14:34 -07:00
2026-05-22 13:38:07 -07:00
2026-05-03 20:41:39 -07:00
2026-05-23 10:21:59 -07:00
2026-04-25 12:25:34 -07:00
2026-04-08 23:26:11 -10:00
2026-05-09 20:46:34 -07:00
2026-05-25 14:20:19 -07:00
2026-05-14 21:22:10 -07:00
2026-05-25 14:20:19 -07:00
2026-04-12 17:38:48 -07:00
2026-05-26 18:29:03 -07:00
2026-05-18 06:22:12 -07:00
2026-05-23 10:21:59 -07:00
2026-05-18 06:22:12 -07:00
2026-05-25 15:21:59 -07:00
2026-04-23 19:34:27 -07:00
2026-05-02 08:41:11 -07:00
2026-04-20 07:30:00 +08:00
2026-04-21 18:35:45 -07:00
2026-05-09 20:46:34 -07:00
2026-05-25 13:15:11 -07:00
2026-05-11 19:25:48 -07:00
2026-05-25 14:43:12 -07:00
2026-04-29 23:46:36 -07:00
2026-04-30 20:47:32 -07:00
2026-05-18 19:34:44 -07:00
2026-05-21 18:57:05 -07:00
2026-05-22 08:00:42 -07:00
2026-04-12 13:23:55 -10:00
2026-05-14 19:13:14 -07:00
2026-05-22 21:18:09 -07:00
2026-04-25 12:25:34 -07:00
2026-05-23 08:49:28 -07:00
2026-05-13 13:14:58 -04:00
2026-05-18 21:11:02 -07:00
2026-05-07 10:03:38 -07:00
2026-05-07 21:52:58 -07:00
2026-05-07 21:52:58 -07:00
2026-04-16 23:03:15 -07:00
2026-04-22 01:34:22 -07:00
2026-05-24 11:37:03 -07:00
2026-04-22 01:34:22 -07:00
2026-05-24 00:00:39 -07:00
2026-05-11 23:20:17 -07:00
2026-05-18 19:34:44 -07:00
2026-05-11 23:20:17 -07:00
2026-05-07 21:52:58 -07:00
2026-05-07 21:52:58 -07:00
2026-05-03 20:16:15 -07:00
2026-05-22 21:04:30 -07:00
2026-04-23 19:34:27 -07:00
2026-05-22 11:53:11 -07:00
2026-05-21 08:59:29 -07:00
2026-05-21 08:59:29 -07:00
2026-05-21 08:59:29 -07:00
2026-05-21 08:29:55 -07:00
2026-05-23 08:49:28 -07:00
2026-05-23 08:49:28 -07:00
2026-04-19 07:14:24 +08:00
2026-05-18 12:53:01 -07:00
2026-04-11 21:25:44 -10:00
2026-04-25 12:25:34 -07:00
2026-05-15 06:48:36 -07:00
2026-04-21 18:35:45 -07:00
2026-05-25 20:00:03 -07:00
2026-04-24 01:39:58 -07:00
2026-05-17 08:00:29 -07:00
2026-05-06 16:32:11 -07:00
2026-05-25 19:43:20 -07:00
2026-05-08 13:25:48 -07:00
2026-04-30 23:17:54 -07:00
2026-04-23 19:34:27 -07:00
2026-05-07 21:52:58 -07:00
2026-04-29 23:46:36 -07:00
2026-05-24 22:56:21 -07:00
2026-05-22 13:38:07 -07:00
2026-05-25 15:21:59 -07:00
2026-05-25 14:56:38 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-25 15:46:25 -07:00
2026-05-22 13:38:07 -07:00
2026-05-24 22:56:21 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-22 13:38:07 -07:00
2026-05-23 16:46:01 -07:00
2026-05-23 16:46:01 -07:00
2026-05-22 13:38:07 -07:00
2026-04-27 22:59:08 -07:00
2026-05-22 09:10:20 -07:00
2026-05-22 21:18:09 -07:00
2026-05-22 09:10:20 -07:00
2026-05-19 17:14:53 -07:00
2026-05-26 18:29:03 -07:00
2026-04-25 12:25:34 -07:00
2026-04-16 23:03:15 -07:00
2026-05-25 10:39:09 -07:00
2026-05-13 13:14:58 -04:00
2026-05-25 15:10:23 -07:00
2026-05-17 15:41:43 -07:00
2026-05-25 14:20:19 -07:00
2026-04-30 20:47:32 -07:00
2026-05-24 11:37:03 -07:00
2026-05-18 20:55:57 -07:00
2026-05-25 09:57:30 -07:00
2026-05-07 13:17:27 -07:00
2026-05-25 09:57:30 -07:00
2026-05-14 20:15:29 -07:00
2026-04-09 10:17:13 -07:00
2026-05-20 13:55:12 -07:00
2026-04-23 19:34:27 -07:00
2026-05-25 20:00:03 -07:00
2026-04-22 02:07:00 -07:00
2026-05-06 20:39:56 -07:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-18 12:53:01 -07:00
2026-04-18 16:57:38 +08:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-04-30 23:17:54 -07:00
2026-05-19 18:12:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-18 12:53:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-05-19 18:12:01 -07:00
2026-04-14 19:41:34 -10:00
2026-05-11 22:54:35 -07:00
2026-05-14 20:51:11 -07:00
2026-05-23 10:21:59 -07:00
2026-05-23 10:21:59 -07:00
2026-05-18 20:55:57 -07:00
2026-05-14 19:13:14 -07:00
2026-05-22 21:04:30 -07:00
2026-05-22 21:04:30 -07:00
2026-05-25 19:53:59 -07:00
2026-05-25 19:53:59 -07:00
2026-04-29 22:21:07 -07:00
2026-05-23 10:21:59 -07:00
2026-05-14 19:13:14 -07:00
2026-05-06 21:14:34 -07:00
2026-05-06 21:14:34 -07:00
2026-05-23 08:49:28 -07:00
2026-05-23 10:21:59 -07:00
2026-04-22 16:24:23 -07:00
2026-05-06 11:54:06 -07:00
2026-05-09 22:58:19 -07:00
2026-05-03 20:41:39 -07:00
2026-05-19 17:14:53 -07:00
2026-04-22 16:24:23 -07:00
2026-04-29 22:21:07 -07:00
2026-04-29 22:21:07 -07:00
2026-04-29 22:21:07 -07:00
2026-04-29 22:21:07 -07:00
2026-05-17 14:02:45 -07:00
2026-04-13 07:49:13 -10:00
2026-05-17 08:51:33 -07:00
2026-04-21 21:14:17 -07:00
2026-04-21 21:14:17 -07:00
2026-05-24 11:37:03 -07:00
2026-05-08 17:07:51 -07:00
2026-04-22 01:34:22 -07:00
2026-05-22 09:10:20 -07:00
2026-05-22 09:10:20 -07:00
2026-04-09 10:17:13 -07:00
2026-05-17 14:27:31 -07:00
2026-05-06 11:54:06 -07:00
2026-05-14 21:06:42 -07:00
2026-05-18 19:34:44 -07:00
2026-05-23 10:57:32 -07:00
2026-05-26 16:58:18 -07:00
2026-05-24 09:30:57 -07:00
2026-04-29 22:53:41 -07:00
2026-04-25 12:25:34 -07:00
2026-05-25 14:43:12 -07:00
2026-05-25 19:53:59 -07:00
2026-05-25 19:53:59 -07:00
2026-04-29 22:53:41 -07:00
2026-05-25 19:53:59 -07:00
2026-04-25 12:25:34 -07:00
2026-05-26 16:58:18 -07:00
2026-05-23 10:21:59 -07:00
2026-05-21 08:29:55 -07:00
2026-05-09 21:18:53 -07:00
2026-05-18 20:55:57 -07:00
2026-05-10 06:34:40 -07:00
2026-05-24 11:37:03 -07:00
2026-05-20 09:19:18 -07:00
2026-05-07 23:07:00 -07:00
2026-05-09 20:46:34 -07:00
2026-05-07 23:07:00 -07:00
2026-05-10 06:34:40 -07:00
2026-05-10 06:34:40 -07:00
2026-05-09 20:46:34 -07:00
2026-05-20 09:19:18 -07:00
2026-05-10 06:34:40 -07:00
2026-05-25 14:56:38 -07:00
2026-05-11 23:20:17 -07:00
2026-05-23 10:01:08 -07:00
2026-05-18 19:34:44 -07:00
2026-05-22 22:37:15 -07:00
2026-05-17 14:02:45 -07:00
2026-05-22 22:37:15 -07:00
2026-05-06 21:14:34 -07:00
2026-05-22 22:37:15 -07:00
2026-05-22 22:37:15 -07:00
2026-05-18 19:34:44 -07:00
2026-05-25 14:43:12 -07:00
2026-05-23 10:21:59 -07:00
2026-05-13 13:14:58 -04:00
2026-05-22 22:37:15 -07:00
2026-04-29 23:46:36 -07:00
2026-04-14 19:41:34 -10:00
2026-05-07 21:52:58 -07:00
2026-04-20 23:14:38 +08:00
2026-05-04 21:11:15 -07:00
2026-04-25 12:25:34 -07:00
2026-05-18 19:34:44 -07:00
2026-05-22 09:10:20 -07:00
2026-05-08 13:25:48 -07:00
2026-05-11 22:54:35 -07:00
2026-05-18 12:53:01 -07:00
2026-05-18 20:55:57 -07:00
2026-05-08 13:25:48 -07:00
2026-04-19 18:23:02 +08:00
2026-05-07 21:52:58 -07:00
2026-05-21 22:11:00 -07:00
2026-05-25 10:39:09 -07:00
2026-05-22 13:38:07 -07:00
2026-05-08 13:25:48 -07:00
2026-05-18 19:34:44 -07:00
2026-05-07 13:41:46 -07:00
2026-05-13 12:21:21 -04:00
2026-04-22 01:34:22 -07:00
2026-05-06 21:14:34 -07:00
2026-05-18 20:55:57 -07:00
2026-05-12 14:33:29 -07:00
2026-05-26 18:29:03 -07:00
2026-05-14 21:06:42 -07:00
2026-05-06 11:54:06 -07:00
2026-04-20 07:30:00 +08:00
2026-04-09 10:17:13 -07:00
2026-05-18 21:11:02 -07:00
2026-05-25 15:10:23 -07:00
2026-05-06 11:54:06 -07:00