Garry Tan and Claude Opus 4.7
0318229f59
feat(cycle): extract_atoms + synthesize_concepts minimal-viable bodies (v0.41 T5+T6)
...
Replaces the T9-shipped stub modules with working LLM-driven phase
bodies. v0.41 ships the right SHAPE — Haiku per transcript producing
1-3 atoms, atoms grouped by concept frontmatter ref, tier assignment
by count, Sonnet narrative for T1/T2. The richer 3-check quality gate
(truism/punchline/entity multi-pass), embedding-similarity dedup, voice
gate integration, op_checkpoint resumability all land in v0.41.1+ —
filed as inline TODOs and plan follow-ups.
T5 extract_atoms (src/core/cycle/extract-atoms.ts):
- Takes transcripts via _transcripts test seam OR discoverTranscripts
production path (lazy-imports transcript-discovery.ts to avoid
circular module loads through cycle.ts).
- Per transcript: ONE Haiku call with the 11-value atom_type enum
embedded in the prompt (matches gbrain-creator.yaml declaration;
v0.42 reads from active pack manifest at runtime per D11).
- parseAtomsResponse tolerates markdown fences + trailing prose;
rejects invalid atom_type values; clamps virality_score to [0,100];
rejects malformed entries silently (skip don't crash).
- Per atom: putPage atom-typed page under atoms/{YYYY-MM-DD}/
{slug-from-title}. Frontmatter preserves atom_type, source_quote,
lesson, virality_score, emotional_register from the LLM output.
- Budget cap $0.30/source/run (DEFAULT_BUDGET_USD); over-budget
transcripts counted as budget-skipped, phase returns status='warn'
if any failures occurred.
- Source-scoped: opts.sourceId routes corpus dir + write target.
- dry-run: counts but doesn't writePages.
- Failures tracked per-transcript without halting the run.
T6 synthesize_concepts (src/core/cycle/synthesize-concepts.ts):
- Takes atoms via _atoms test seam OR DB query for type='atom' pages
excluding imported_from frontmatter marker (D7 skip).
- Groups atoms by frontmatter `concepts:` array ref.
- Tier by count: T1 >=10, T2 >=5, T3 >=2, T4 deferred (no <2 groups).
- T1/T2 groups: Sonnet call with up to 10 sample titles + 5 sample
bodies → 1-paragraph narrative. Budget cap $1.50/run; over-budget
or LLM-failed groups fall back to deterministic narrative.
- T3 groups: deterministic narrative (no LLM call).
- Per group: putPage concept-typed page at concepts/{title-from-slug}
with tier + mention_count + composite_score frontmatter.
- dry-run + yieldDuringPhase honored.
Tests (test/cycle/extract-atoms-synthesize-concepts.test.ts, 19 cases):
parseAtomsResponse: well-formed JSON, markdown fences stripped,
trailing prose tolerated, invalid atom_type rejected, missing fields
rejected, garbage returns [], all 11 atom_type values accepted,
virality_score clamped to [0,100].
runPhaseExtractAtoms: no-op without transcripts, extracts via stub
chat + writes pages, dry-run counts without writing, failures
tracked per-transcript without halting.
runPhaseSynthesizeConcepts: no-op without atoms, groups by concept
ref + tier assignment by count (T1=12 atoms, T2=6, T3=3), atoms
without concept refs filtered out, <T3 threshold (1 atom) filtered,
T3 uses deterministic (no LLM call), dry-run counts without writing,
T1 narrative comes from LLM stub verbatim.
All 19 pass; typecheck clean.
Plan: ~/.claude/plans/system-instruction-you-are-working-toasty-milner.md
Tasks T5 + T6 of 13. v0.41.1 follow-ups inline:
- extract_atoms: read atom_type enum from active pack at runtime (D11)
- extract_atoms: 3-check quality gate as multi-pass refinement
- synthesize_concepts: embedding-similarity dedup (currently exact-
string concept ref match only)
- synthesize_concepts: voice gate for T1 Canon narratives
- Both: op_checkpoint resumability for cross-cycle continuation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 00:24:23 -07:00
..
2026-05-22 09:10:20 -07:00
2026-05-23 10:01:08 -07:00
2026-05-22 11:53:11 -07:00
2026-05-23 08:49:28 -07:00
2026-05-14 19:13:14 -07:00
2026-05-22 21:18:09 -07:00
2026-05-22 13:38:07 -07:00
2026-05-24 00:24:23 -07:00
2026-05-23 10:57:32 -07:00
2026-05-17 18:52:38 -07:00
2026-05-22 22:16:25 -07:00
2026-05-20 20:25:41 -07:00
2026-05-21 22:11:00 -07:00
2026-05-24 00:21:45 -07:00
2026-05-22 09:10:20 -07:00
2026-05-22 22:37:15 -07:00
2026-05-17 08:32:03 -07:00
2026-05-23 10:01:08 -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-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-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-18 20:55:57 -07:00
2026-04-14 19:41:34 -10:00
2026-05-18 21:11:02 -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-19 10:05:31 -07:00
2026-05-22 09:29:59 -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-04-21 11:51:32 -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-18 12:53:01 -07:00
2026-05-02 08:41:11 -07:00
2026-05-11 19:25:48 -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-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-21 22:11:00 -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-08 13:25:48 -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-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-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-22 21:04:30 -07:00
2026-05-24 00:16:39 -07:00
2026-04-30 01:23:29 -07:00
2026-05-22 21:04:30 -07:00
2026-05-08 17:07:51 -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-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-18 19:34:44 -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-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-21 22:11:00 -07:00
2026-05-21 18:57:05 -07:00
2026-05-13 13:14:58 -04:00
2026-05-21 08:29:55 -07:00
2026-05-21 22:11:00 -07:00
2026-05-23 10:01:08 -07:00
2026-05-24 00:19:04 -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-19 17:14:53 -07:00
2026-05-23 10:21:59 -07:00
2026-05-14 21:22:10 -07:00
2026-05-23 08:49:28 -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-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-22 22:16:25 -07:00
2026-05-01 09:02:43 -07:00
2026-05-22 22:16:25 -07:00
2026-05-01 09:02:43 -07:00
2026-05-22 22:16:25 -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-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-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-09 20:46:34 -07:00
2026-05-22 13:38:07 -07:00
2026-05-22 21:18:09 -07:00
2026-05-09 16:57:47 -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-12 14:33:29 -07:00
2026-05-22 21:18:09 -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-04-26 20:45:05 -07:00
2026-05-18 21:26:12 -07:00
2026-04-29 23:46:36 -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-09 22:58:19 -07:00
2026-05-01 09:02:43 -07:00
2026-05-13 13:14:58 -04:00
2026-05-14 20:51:11 -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-04-25 12:25:34 -07:00
2026-05-24 00:16:39 -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-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-18 21:26:12 -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-22 22:37:15 -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-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 00:02:11 -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-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-21 08:29:55 -07:00
2026-05-09 19:47:56 -07:00
2026-05-22 09:10:20 -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-17 18:52:38 -07:00
2026-05-23 16:46:01 -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-14 21:22:10 -07:00
2026-04-12 17:38:48 -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-22 21:04:30 -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-03 20:16:15 -07:00
2026-05-11 19:25:48 -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-04-22 01:34:22 -07:00
2026-05-18 21:11:02 -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-10 13:20:07 -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-18 21:11:02 -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-23 08:49:28 -07:00
2026-05-22 13:38:07 -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-05-22 13:38:07 -07:00
2026-05-24 00:16:39 -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-07 10:03:38 -07:00
2026-04-25 12:25:34 -07:00
2026-04-16 23:03:15 -07:00
2026-05-23 10:01:08 -07:00
2026-05-13 13:14:58 -04:00
2026-05-12 14:33:29 -07:00
2026-05-17 15:41:43 -07:00
2026-04-29 23:46:36 -07:00
2026-04-30 20:47:32 -07:00
2026-05-18 20:55:57 -07:00
2026-05-07 13:17:27 -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-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-21 08:29:55 -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-21 08:29:55 -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-04-25 12:25:34 -07:00
2026-04-29 22:53:41 -07:00
2026-04-25 12:25:34 -07:00
2026-05-09 20:46:34 -07:00
2026-04-29 22:53:41 -07:00
2026-04-25 12:25:34 -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-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-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-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-21 22:11:00 -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-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-06 11:54:06 -07:00