Dotta and Paperclip
721e87ac02
refactor(server): separate receiver ownership and provider callbacks ( #16185 )
...
## Thinking Path
> - Paperclip accepts provider callbacks as durable task input.
> - Runtime ownership prevents two servers from accepting the same
receiver stream.
> - Discord and Photon share the lease machinery but have different
callback details.
> - Moving that shared machinery into Discord would create the wrong
platform dependency.
> - This pull request extracts common receiver ownership and puts
provider callbacks in their own folders.
> - The service keeps startup and shutdown coordination.
## Linked Issues or Issue Description
Depends on #16183 ; review against the parent branch. Refs #16180 and
#16080 . Related open work: #15532 changes Discord command reconciliation
scheduling. This extraction preserves existing scheduling.
**What existing behavior does this improve?**
The structure of shared receiver ownership and Discord/Photon runtime
callbacks.
**Current behavior**
The shared entry point mixes lease acquisition, renewal, provider
capability checks, and Photon checkpoint transactions.
**Proposed behavior**
Put the common lease operations in runtime/ownership.ts and the protocol
details in the provider folders.
**Reason and benefit**
The ownership lifetime stays explicit without making Photon depend on
Discord implementation code.
## What Changed
- Extract 11 receiver-ownership helpers into runtime/ownership.ts (397
lines). Expose only the operations used by the service.
- Extract Photon ownership checks and checkpoint callbacks (44 lines).
Retain the same runtime context object.
- Extract Discord command and capability reconciliation (112 lines).
- Keep the original service-owned lease map, runtime versions, stop
tasks, and shutdown sequence. Read shutdown and test overrides through
live accessors.
- Reduce chat-channels.ts from 6,880 to 6,340 lines, including removal
of blank gaps left by extractions.
## Verification
- Merge preparation: replayed this stack onto current master after
#16180 landed. Preserve master's new Telegram scheduling methods and
connection-scoped Photon notifications. Server typecheck, callback
syntax audit, and module-boundary check passed. Fresh local integration
and wiring checks passed (1,318 tests). The dedicated Photon suite
passed 18 before and 18 after the conflict resolution. Current head is
6d52aba35f; CI and review are running. Earlier verification below
describes the previous stack commits.
- Existing Discord, Photon, and runtime integration cases: 110 passed
before and 110 passed after; 1,185 other cases excluded.
- Server typecheck, module-boundary check, and git diff --check passed.
- Syntax-tree comparison: 11 ownership helpers, two Photon callback
bodies, Discord reconciliation, unrelated service functions, and the
full public API/shutdown return expression preserve structure.
Intentional binding changes are audited.
- Both preceding PRs have 55 passing CI checks and current-head 5/5
reviews.
- Repository typecheck and build passed earlier in this stack. Final
stack checks are recorded below. The first broad local run hit a macOS
PostgreSQL shared-memory fixture limit and was interrupted after that
failure.
- All 55 CI checks pass on df15f9dd9c. Greptile rates that head 5/5 with
no inline findings. Tests use real local persistence with fixture
runtimes; they do not prove live Discord or Photon execution.
- Previous stack validation on #16192 (55417debfe): repository typecheck
and build passed; all 1,295 chat integration cases plus 14 source-wiring
checks passed locally (1,309 total). All five PRs have current-head 5/5
reviews and 55 passing CI checks. The broad local pnpm test:run hit
PostgreSQL shared-memory fixture failures and was interrupted after 868
seconds (exit 130); it is not a local full-suite pass.
## Risks
Lease loss and partial startup can create overlapping receivers if
cleanup order changes. The service retains the same map objects and
shutdown ordering. The ownership module reads current shutdown state,
and Photon callbacks retain the exact mutable runtime context reference.
No new worker or timer starts during module initialization.
## Model Used
OpenAI GPT-6 via Codex, with code execution and repository tools. The
precise serving variant and context-window size are not exposed in this
session.
## Checklist
- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge
Co-authored-by: Paperclip <noreply@paperclip.ing >
2026-10-13 11:17:21 -05:00
..
2026-10-12 15:59:27 -07:00
2026-10-13 11:17:21 -05:00
2026-10-12 15:34:02 -05:00
2026-09-26 00:47:47 -07:00
2026-10-13 10:16:10 -05:00
2026-10-13 10:14:45 -05:00
2026-09-12 15:23:50 -05:00
2026-10-10 13:09:17 -05:00
2026-10-12 19:25:15 -07:00
2026-09-02 16:11:26 -05:00
2026-09-30 13:33:37 -05:00
2026-10-10 09:13:44 -05:00
2026-10-05 10:31:11 -05:00
2026-10-07 15:53:13 -05:00
2026-10-06 22:26:48 -07:00
2026-09-19 16:49:18 -05:00
2026-09-19 16:49:18 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 17:06:54 -05:00
2026-10-12 15:44:47 -07:00
2026-10-12 15:44:47 -07:00
2026-10-02 16:55:38 -07:00
2026-10-02 16:55:38 -07:00
2026-08-19 11:51:31 -07:00
2026-08-19 11:51:31 -07:00
2026-06-10 21:09:02 -07:00
2026-06-10 21:09:02 -07:00
2026-04-24 15:50:32 -05:00
2026-07-09 13:08:56 -05:00
2026-06-10 21:09:02 -07:00
2026-06-10 21:09:02 -07:00
2026-10-02 16:55:38 -07:00
2026-08-21 00:04:14 -07:00
2026-10-06 13:29:03 -05:00
2026-06-06 12:45:57 -05:00
2026-09-19 07:57:53 -05:00
2026-10-08 06:33:31 -05:00
2026-10-08 06:33:31 -05:00
2026-10-06 16:14:06 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-10-10 13:09:17 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-10-09 08:56:41 -05:00
2026-10-12 20:45:18 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-10-12 20:45:18 -05:00
2026-09-30 13:33:37 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-10-06 13:57:03 -05:00
2026-10-06 13:57:03 -05:00
2026-09-29 08:25:56 -05:00
2026-09-29 08:25:56 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 08:56:41 -05:00
2026-09-29 08:25:56 -05:00
2026-06-19 08:35:53 -07:00
2026-10-10 07:15:41 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-08-18 09:44:24 -05:00
2026-04-24 15:50:32 -05:00
2026-09-08 11:00:55 -07:00
2026-10-02 10:01:15 -05:00
2026-10-09 09:05:12 -07:00
2026-10-05 14:57:04 -05:00
2026-10-09 09:05:12 -07:00
2026-10-06 13:29:03 -05:00
2026-10-06 20:48:15 -05:00
2026-10-09 17:06:54 -05:00
2026-10-09 17:06:54 -05:00
2026-10-05 20:44:37 -05:00
2026-10-09 13:38:01 -07:00
2026-10-05 20:44:37 -05:00
2026-10-06 13:29:03 -05:00
2026-10-09 13:38:01 -07:00
2026-10-10 13:09:17 -05:00
2026-10-06 13:29:03 -05:00
2026-09-14 10:19:54 -05:00
2026-09-14 10:19:54 -05:00
2026-09-14 10:19:54 -05:00
2026-10-07 14:43:07 -05:00
2026-10-07 14:43:07 -05:00
2026-09-23 17:11:16 -05:00
2026-09-23 17:11:16 -05:00
2026-10-09 09:05:12 -07:00
2026-08-29 12:08:35 -05:00
2026-08-29 12:08:35 -05:00
2026-08-20 17:28:01 -07:00
2026-10-13 07:34:15 -05:00
2026-09-14 21:58:34 -07:00
2026-08-29 12:08:33 -05:00
2026-10-07 07:06:40 -05:00
2026-10-13 10:14:45 -05:00
2026-07-30 16:52:58 -07:00
2026-10-10 13:09:17 -05:00
2026-08-11 14:39:23 -04:00
2026-08-11 14:39:23 -04:00
2026-09-30 07:13:16 -05:00
2026-09-30 07:13:16 -05:00
2026-10-10 07:06:31 -05:00
2026-10-10 07:06:31 -05:00
2026-10-06 22:26:48 -07:00
2026-10-09 09:05:12 -07:00
2026-10-09 09:05:12 -07:00
2026-09-19 09:18:10 -07:00
2026-10-03 01:00:42 -05:00
2026-05-28 07:33:51 -10:00
2026-09-29 08:25:56 -05:00
2026-10-13 07:55:27 -07:00
2026-09-10 10:06:45 -05:00
2026-10-13 11:17:21 -05:00
2026-10-09 21:54:11 -05:00
2026-10-09 21:54:11 -05:00
2026-10-09 10:01:26 -05:00
2026-09-11 18:11:44 -05:00
2026-09-11 18:11:44 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-10-08 06:33:31 -05:00
2026-10-10 13:14:23 -05:00
2026-09-09 13:49:12 -05:00
2026-10-06 07:19:15 -07:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-12 20:45:18 -05:00
2026-09-21 14:41:19 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-09-21 14:41:19 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-09-09 13:49:12 -05:00
2026-09-21 14:41:19 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-09 17:01:20 -05:00
2026-10-10 13:09:17 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-09 17:01:20 -05:00
2026-10-09 17:01:20 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-10-10 09:13:44 -05:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-24 10:51:45 -05:00
2026-09-09 13:49:12 -05:00
2026-10-09 21:54:11 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-12 15:23:50 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-10-09 16:29:54 -05:00
2026-10-10 13:09:17 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-10 13:14:23 -05:00
2026-09-10 10:06:45 -05:00
2026-10-10 09:13:44 -05:00
2026-10-09 21:54:11 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-12 15:23:50 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-12 15:34:02 -05:00
2026-10-12 15:34:02 -05:00
2026-10-11 06:08:05 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-19 20:40:05 -05:00
2026-09-19 20:40:05 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-10-06 07:19:15 -07:00
2026-10-10 09:13:44 -05:00
2026-10-06 07:19:15 -07:00
2026-09-10 10:06:45 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-09 13:49:12 -05:00
2026-09-10 10:06:45 -05:00
2026-10-13 07:55:27 -07:00
2026-09-22 17:49:15 -07:00
2026-09-22 17:49:15 -07:00
2026-10-06 06:58:36 -07:00
2026-09-03 12:01:47 -05:00
2026-10-13 10:14:45 -05:00
2026-10-06 09:11:25 -07:00
2026-10-06 09:11:25 -07:00
2026-09-12 16:30:10 -05:00
2026-10-06 22:26:48 -07:00
2026-09-24 15:54:38 -05:00
2026-10-13 07:34:15 -05:00
2026-10-04 02:13:46 -07:00
2026-10-12 20:45:18 -05:00
2026-08-14 22:11:16 -07:00
2026-08-11 15:25:07 -07:00
2026-10-06 15:55:38 -05:00
2026-10-09 09:05:12 -07:00
2026-10-13 07:34:15 -05:00
2026-10-07 07:06:40 -05:00
2026-05-06 06:32:37 -05:00
2026-10-07 07:06:40 -05:00
2026-07-15 11:42:40 -05:00
2026-10-13 07:53:13 -05:00
2026-08-11 15:25:07 -07:00
2026-10-05 14:57:04 -05:00
2026-09-30 11:46:46 -05:00
2026-10-05 14:57:04 -05:00
2026-09-30 14:32:34 -05:00
2026-09-30 14:32:34 -05:00
2026-10-05 18:16:00 -05:00
2026-10-11 09:30:45 -07:00
2026-10-09 17:01:20 -05:00
2026-09-30 14:32:34 -05:00
2026-10-05 14:57:04 -05:00
2026-10-09 21:54:11 -05:00
2026-09-23 22:32:40 +00:00
2026-09-23 22:32:40 +00:00
2026-09-30 11:46:46 -05:00
2026-10-07 13:29:44 -07:00
2026-10-11 22:48:29 -07:00
2026-10-06 22:26:48 -07:00
2026-10-11 22:48:29 -07:00
2026-10-09 17:06:54 -05:00
2026-08-16 13:46:50 -05:00
2026-10-06 21:38:15 -05:00
2026-10-06 21:38:15 -05:00
2026-10-01 12:18:35 -05:00
2026-10-06 22:26:48 -07:00
2026-07-07 05:54:20 -05:00
2026-10-07 15:53:13 -05:00
2026-10-07 15:53:13 -05:00
2026-09-11 15:46:35 -05:00
2026-08-02 10:47:03 -05:00
2026-07-31 22:48:32 -07:00
2026-10-07 07:06:40 -05:00
2026-08-02 10:47:03 -05:00
2026-08-29 19:26:20 -05:00
2026-10-02 17:56:42 -05:00
2026-10-13 07:55:27 -07:00
2026-10-13 07:55:27 -07:00
2026-08-28 21:48:34 -07:00
2026-08-28 21:48:34 -07:00
2026-09-12 16:30:10 -05:00
2026-09-19 09:18:10 -07:00
2026-07-09 22:11:03 -05:00
2026-09-17 08:40:40 -05:00
2026-10-09 12:58:35 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 16:20:38 -05:00
2026-08-31 14:38:38 -05:00
2026-10-13 07:40:46 -05:00
2026-10-07 10:16:49 -05:00
2026-10-12 20:45:18 -05:00
2026-10-02 10:01:15 -05:00
2026-10-09 14:25:14 -07:00
2026-10-13 06:24:07 -05:00
2026-10-13 06:24:07 -05:00
2026-07-03 16:44:21 -07:00
2026-07-03 16:44:21 -07:00
2026-07-03 16:44:21 -07:00
2026-08-23 21:24:59 -07:00
2026-09-01 01:29:06 -05:00
2026-10-11 12:08:45 -07:00
2026-10-13 06:24:07 -05:00
2026-10-09 08:56:41 -05:00
2026-10-11 12:08:45 -07:00
2026-10-09 09:05:12 -07:00
2026-10-08 19:27:39 -07:00
2026-10-13 06:24:07 -05:00
2026-08-11 11:40:57 -07:00
2026-08-11 11:40:57 -07:00
2026-10-07 13:29:44 -07:00
2026-09-21 20:06:05 -07:00
2026-09-29 10:25:52 -05:00
2026-10-07 07:06:40 -05:00
2026-09-09 09:14:25 -05:00
2026-09-17 15:52:19 -05:00
2026-10-09 09:05:12 -07:00
2026-06-10 21:09:02 -07:00
2026-06-10 21:09:02 -07:00
2026-10-05 20:09:18 -07:00
2026-09-21 18:13:01 -05:00
2026-10-05 20:09:18 -07:00
2026-10-05 20:44:37 -05:00
2026-10-05 20:44:37 -05:00
2026-10-07 13:29:44 -07:00
2026-09-10 10:06:45 -05:00
2026-09-11 11:43:40 -05:00
2026-08-21 17:23:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-05 10:57:57 -07:00
2026-10-09 16:47:21 -05:00
2026-10-09 16:47:21 -05:00
2026-07-30 11:37:00 -07:00
2026-10-11 11:53:21 -07:00
2026-10-10 13:09:17 -05:00
2026-10-10 13:09:17 -05:00
2026-10-10 13:09:17 -05:00
2026-10-13 09:10:37 -05:00
2026-10-09 10:01:26 -05:00
2026-10-09 10:01:26 -05:00
2026-10-06 22:26:48 -07:00
2026-09-23 17:11:16 -05:00
2026-09-23 17:11:16 -05:00
2026-07-16 15:50:45 -05:00
2026-10-08 10:19:40 -07:00
2026-09-09 10:15:10 -05:00
2026-09-02 15:27:54 -05:00
2026-10-09 17:01:20 -05:00
2026-10-11 11:53:21 -07:00
2026-08-02 20:27:09 -07:00
2026-09-10 10:06:45 -05:00
2026-09-02 15:27:54 -05:00
2026-10-12 11:30:20 -05:00
2026-09-22 15:12:30 -05:00
2026-09-22 15:12:30 -05:00
2026-09-22 15:12:30 -05:00
2026-09-22 13:07:13 -05:00
2026-09-22 13:07:13 -05:00
2026-08-20 17:09:42 -05:00
2026-09-14 21:58:34 -07:00
2026-10-07 07:06:40 -05:00
2026-08-21 12:51:22 -07:00
2026-07-02 22:21:56 -07:00
2026-09-09 12:18:56 -05:00
2026-09-29 10:18:30 -05:00
2026-10-09 08:56:41 -05:00
2026-10-02 16:09:36 -07:00
2026-10-02 16:09:36 -07:00
2026-10-13 10:16:10 -05:00
2026-04-04 14:04:33 -05:00
2026-10-05 18:16:00 -05:00
2026-10-09 08:56:41 -05:00
2026-10-09 08:56:41 -05:00
2026-10-01 09:45:18 -05:00
2026-10-08 15:58:55 -07:00
2026-10-11 10:01:57 -07:00
2026-10-11 12:27:51 -07:00
2026-08-10 17:01:33 -07:00
2026-07-16 16:49:18 -05:00
2026-07-10 17:09:57 -05:00
2026-10-07 15:53:13 -05:00
2026-10-10 13:09:17 -05:00
2026-10-09 09:05:12 -07:00
2026-07-14 15:47:58 -07:00
2026-09-30 18:06:07 -05:00
2026-09-30 18:06:07 -05:00
2026-09-10 10:06:45 -05:00
2026-07-31 18:52:59 -07:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-09-29 10:18:30 -05:00
2026-09-11 12:39:08 -05:00
2026-10-10 00:40:08 -07:00
2026-08-23 08:50:38 -07:00
2026-08-23 08:50:38 -07:00
2026-10-08 10:20:32 -07:00
2026-04-24 15:50:32 -05:00
2026-10-07 08:41:24 -05:00
2026-10-13 08:09:19 -05:00
2026-08-27 11:34:42 -07:00
2026-08-27 11:34:42 -07:00
2026-10-09 16:47:21 -05:00
2026-10-09 16:47:21 -05:00
2026-10-02 22:07:14 -05:00
2026-10-02 22:07:14 -05:00
2026-09-30 10:26:28 -05:00
2026-10-10 00:40:08 -07:00
2026-10-13 10:14:45 -05:00
2026-06-05 03:20:46 +00:00
2026-08-16 13:46:50 -05:00
2026-08-04 13:17:49 -05:00
2026-08-29 12:08:33 -05:00
2026-08-31 14:38:38 -05:00
2026-10-06 20:33:13 -05:00
2026-10-11 09:30:45 -07:00
2026-09-30 16:48:24 -05:00
2026-09-12 08:56:04 -05:00
2026-09-22 10:35:33 -05:00
2026-10-13 09:26:37 -05:00
2026-07-28 10:50:13 -07:00
2026-09-11 16:55:44 -07:00
2026-09-11 16:55:44 -07:00
2026-10-03 01:00:42 -05:00
2026-10-10 01:27:03 -07:00
2026-10-11 09:30:59 -07:00
2026-10-10 01:27:03 -07:00
2026-09-10 10:06:45 -05:00
2026-10-13 06:24:07 -05:00
2026-10-13 06:24:07 -05:00
2026-09-12 23:06:55 +00:00
2026-10-06 13:29:03 -05:00
2026-09-12 23:06:55 +00:00
2026-10-09 08:19:51 -05:00
2026-10-12 20:45:18 -05:00
2026-08-21 16:03:43 -07:00
2026-08-28 21:48:34 -07:00
2026-08-28 21:48:34 -07:00
2026-10-01 09:45:18 -05:00
2026-09-02 00:48:30 -05:00
2026-07-27 18:58:31 -07:00
2026-09-10 19:23:13 -07:00
2026-09-10 19:23:13 -07:00
2026-10-12 20:45:18 -05:00
2026-08-07 00:41:42 -05:00
2026-08-07 00:41:42 -05:00
2026-08-19 02:37:02 -05:00
2026-10-08 10:19:40 -07:00
2026-10-08 10:19:40 -07:00
2026-10-02 13:47:59 -05:00
2026-10-02 13:47:59 -05:00
2026-09-14 09:45:34 -05:00
2026-10-02 17:56:42 -05:00
2026-10-03 12:32:42 -05:00
2026-09-08 20:19:14 -07:00
2026-09-08 20:19:14 -07:00
2026-10-09 09:05:12 -07:00
2026-10-06 13:29:03 -05:00
2026-10-06 13:29:03 -05:00
2026-10-01 15:42:40 -05:00
2026-10-12 19:32:33 -07:00
2026-10-12 19:32:33 -07:00
2026-08-31 14:34:46 -05:00
2026-10-12 19:32:33 -07:00
2026-10-12 19:32:33 -07:00
2026-08-31 14:34:46 -05:00
2026-10-07 19:52:30 -07:00
2026-07-09 13:08:56 -05:00
2026-06-26 12:02:44 -05:00
2026-07-09 13:08:56 -05:00
2026-08-29 19:26:20 -05:00
2026-08-31 14:38:38 -05:00
2026-09-22 16:39:11 -07:00
2026-05-15 10:20:02 -05:00
2026-05-12 17:38:24 -05:00
2026-08-23 21:24:59 -07:00
2026-10-09 09:05:12 -07:00
2026-09-19 09:18:10 -07:00
2026-10-06 09:11:25 -07:00
2026-10-06 12:27:09 -07:00
2026-05-20 10:37:11 -05:00
2026-09-19 09:18:10 -07:00
2026-05-17 17:15:06 -05:00
2026-10-09 09:05:12 -07:00
2026-07-24 16:47:24 -05:00
2026-05-10 07:34:12 -05:00
2026-08-21 00:04:14 -07:00
2026-09-19 09:18:10 -07:00
2026-07-14 12:57:20 -05:00
2026-06-03 19:13:21 -07:00
2026-06-03 19:13:21 -07:00
2026-10-08 12:57:32 -07:00
2026-05-28 07:33:51 -10:00
2026-10-11 09:30:45 -07:00
2026-10-07 13:53:46 -05:00
2026-05-22 08:12:52 -05:00
2026-10-07 12:05:21 -07:00
2026-10-12 20:45:18 -05:00
2026-10-09 17:01:20 -05:00
2026-09-16 13:01:58 -05:00
2026-10-05 10:31:11 -05:00
2026-04-20 10:39:37 -05:00
2026-10-12 20:45:18 -05:00
2026-10-06 22:26:48 -07:00
2026-09-06 15:45:07 -05:00
2026-08-31 14:38:38 -05:00
2026-08-31 14:38:38 -05:00
2026-08-31 14:38:38 -05:00
2026-10-02 14:21:11 -05:00
2026-10-02 14:21:11 -05:00
2026-10-02 14:21:11 -05:00
2026-10-02 14:21:11 -05:00
2026-10-09 10:01:26 -05:00
2026-09-16 14:44:36 -05:00
2026-10-11 10:01:57 -07:00
2026-10-11 10:01:57 -07:00
2026-09-16 13:54:44 -07:00
2026-09-16 13:54:44 -07:00
2026-10-06 22:26:48 -07:00
2026-08-22 11:41:24 -05:00
2026-09-06 15:45:07 -05:00
2026-09-02 00:48:30 -05:00
2026-10-08 10:19:40 -07:00
2026-09-11 15:18:37 -05:00
2026-10-08 10:19:40 -07:00
2026-10-08 10:19:40 -07:00
2026-09-21 12:53:11 -05:00
2026-08-29 12:08:34 -05:00
2026-08-29 12:08:34 -05:00
2026-10-06 11:43:16 -07:00
2026-10-07 13:53:46 -05:00
2026-07-05 05:58:20 -05:00
2026-07-05 05:58:20 -05:00
2026-07-23 15:49:28 -05:00
2026-06-12 10:15:53 -07:00
2026-10-05 22:54:25 -07:00
2026-10-02 13:47:59 -05:00
2026-10-02 13:47:59 -05:00
2026-04-24 15:50:32 -05:00
2026-10-06 22:26:48 -07:00
2026-10-12 12:33:59 -07:00
2026-10-12 15:59:27 -07:00
2026-09-28 16:16:05 -07:00
2026-10-06 15:36:01 -05:00
2026-09-28 19:15:33 -07:00
2026-09-30 11:54:56 -05:00
2026-09-30 11:54:56 -05:00
2026-07-08 13:38:36 -05:00
2026-07-08 13:38:36 -05:00
2026-10-09 17:06:54 -05:00
2026-10-01 09:45:18 -05:00
2026-09-26 21:23:33 -05:00
2026-09-08 16:18:47 -05:00
2026-09-08 16:18:47 -05:00
2026-10-07 06:53:20 -05:00
2026-09-12 08:56:04 -05:00
2026-10-12 20:45:18 -05:00
2026-10-06 22:26:48 -07:00
2026-07-27 19:45:59 -05:00
2026-09-10 10:06:45 -05:00
2026-09-10 10:06:45 -05:00
2026-10-08 08:35:45 -07:00
2026-09-28 10:57:32 -05:00
2026-10-10 01:27:03 -07:00
2026-10-11 09:30:45 -07:00
2026-08-18 09:44:24 -05:00
2026-08-18 09:44:24 -05:00
2026-10-09 09:05:12 -07:00
2026-10-06 11:48:53 -05:00
2026-05-13 16:23:04 -05:00
2026-05-13 16:23:04 -05:00
2026-08-27 11:29:05 -07:00
2026-08-20 17:54:44 -07:00
2026-08-19 11:51:31 -07:00
2026-08-19 11:51:31 -07:00
2026-09-05 10:03:13 -07:00
2026-09-12 16:30:10 -05:00
2026-09-05 10:03:13 -07:00
2026-08-23 09:44:59 -07:00
2026-09-29 09:40:21 -05:00
2026-04-14 12:57:11 -05:00
2026-09-30 13:32:58 -05:00
2026-10-12 11:30:20 -05:00
2026-09-30 13:32:58 -05:00
2026-10-12 11:30:20 -05:00
2026-09-30 13:32:58 -05:00
2026-09-30 13:32:58 -05:00
2026-10-13 07:53:13 -05:00
2026-10-03 12:37:55 -05:00
2026-10-03 12:37:55 -05:00
2026-06-19 09:14:41 -07:00
2026-09-24 10:51:45 -05:00
2026-09-24 10:51:45 -05:00
2026-10-10 13:14:23 -05:00
2026-09-24 10:51:45 -05:00
2026-10-09 21:54:11 -05:00
2026-10-09 21:54:11 -05:00
2026-09-21 20:25:06 -07:00
2026-09-21 20:25:06 -07:00
2026-08-29 12:08:33 -05:00
2026-06-05 16:48:02 -05:00
2026-09-12 08:56:04 -05:00
2026-07-24 12:26:43 -05:00
2026-07-24 16:44:56 -05:00
2026-10-09 09:05:12 -07:00
2026-10-09 13:38:01 -07:00
2026-10-11 10:01:57 -07:00
2026-10-09 13:38:01 -07:00
2026-10-09 13:38:01 -07:00
2026-08-05 15:59:01 -05:00
2026-07-17 11:03:07 -05:00
2026-10-09 09:05:12 -07:00
2026-07-31 18:52:23 -07:00
2026-10-08 08:35:45 -07:00
2026-09-12 08:56:04 -05:00
2026-10-07 07:06:40 -05:00
2026-06-19 15:38:52 -05:00
2026-08-16 13:46:50 -05:00
2026-10-12 20:45:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-12 20:45:18 -05:00
2026-06-05 12:55:49 -05:00
2026-10-05 14:57:04 -05:00
2026-10-13 07:55:27 -07:00
2026-10-09 10:01:26 -05:00
2026-10-09 10:01:26 -05:00
2026-08-29 12:08:32 -05:00
2026-09-07 14:32:20 -05:00
2026-10-02 07:45:27 -05:00
2026-10-02 07:45:27 -05:00
2026-10-11 09:30:45 -07:00
2026-07-14 14:22:39 -05:00
2026-10-05 14:57:04 -05:00
2026-10-05 14:57:04 -05:00
2026-07-14 14:22:39 -05:00
2026-07-14 14:22:39 -05:00
2026-10-12 20:45:18 -05:00
2026-10-08 08:35:45 -07:00
2026-08-29 12:08:34 -05:00
2026-08-29 12:08:34 -05:00
2026-10-06 16:03:13 -07:00
2026-10-09 10:01:26 -05:00
2026-09-19 07:57:53 -05:00
2026-10-09 12:50:03 -07:00
2026-10-12 20:45:18 -05:00
2026-09-11 08:34:24 -05:00
2026-09-28 08:40:36 -05:00
2026-09-28 08:40:36 -05:00
2026-09-29 08:56:21 -05:00
2026-10-12 20:45:18 -05:00
2026-08-19 02:37:02 -05:00
2026-08-19 02:37:02 -05:00
2026-09-18 07:21:11 -07:00
2026-09-28 09:33:39 -05:00
2026-08-19 02:37:02 -05:00
2026-08-23 21:24:59 -07:00
2026-10-07 13:29:44 -07:00
2026-10-07 13:29:44 -07:00
2026-08-17 06:23:33 -04:00
2026-09-30 14:16:15 -05:00
2026-08-19 02:37:02 -05:00
2026-08-29 12:08:32 -05:00
2026-08-29 12:08:32 -05:00
2026-08-21 17:23:18 -05:00
2026-10-12 20:45:18 -05:00
2026-10-07 19:52:30 -07:00