Brennan Benson
68fca0b076
Add safe skill freshness detection and update rail ( #8637 )
...
* Add safe skill freshness detection
* Accept observed copy-mode rail outcomes
* chore(skills): regenerate snapshot artifacts for the merged guide content
The rebase onto main picked up the reviewed guide fixes (#8624 ), so the
current manifest hashes and a new appended snapshot generation must
match those bytes; the registry keeps all prior snapshots so existing
installs classify as outdated rather than unrecognized.
* fix(skills): canonicalize snapshot file order and guard released history
Historical snapshots kept git ls-tree byte-order while the working-tree
walk and runtime observation use the sorted depth-first order, so any
future multi-file skill would misclassify older installs as unrecognized
and churn spurious registry revisions; all producers now share one
canonical order (no digest changes for today's single-file packages).
Also rejects executable files from shipped skills (Windows observation
cannot see execute bits, which would misclassify pristine Windows
installs) and adds an explicit append-only invariant for released
snapshots so a generation-logic change cannot rewrite them silently.
* fix(skills): throttle focus rescans and correct self-blocked placement copy
Every window focus re-read and re-hashed all installed packages, and the
nudge and panel each forced their own trailing rescan for one event; a
15s cooldown plus a shared invalidation latch keep one bounded scan per
event while install-change events stay immediate. Bundle artifacts are
now loaded once per run instead of re-parsed on every scan. A read-only
or otherwise unsupported outdated placement now explains that it blocks
itself instead of blaming a phantom sibling placement; the supported
topology set moved to shared so eligibility and copy cannot drift.
* feat(skills): move freshness surfacing to a lingering toast and update modal
The Skills page has been unreachable since its toolbox menu entry was
removed (#4535 ), so surfacing freshness there buried the feature behind
its own nudge. The nudge now lingers until acted on (ignoring it records
nothing; only the explicit close persists dismissal keys) and opens an
update modal hosting the pre-filled editable terminal, an honest
current/blocked summary, and the per-placement rows in a collapsed
Details section. A compact 'Check for skill updates' row in CLI settings
is the manual re-entry point. Skills page restored to main; design-doc
surfacing section records the venue decision.
* fix(skills): mount update dialog inside the link-routing provider and fold freshness into the setup rails
The dialog hosts a live terminal pane that requires the link-routing
preference context; mounted outside the provider it crashed the renderer
the moment an eligible update existed (caught by live QA — unit tests
mock the terminal). It now mounts inside the provider behind its own
recoverable boundary.
The separate 'Check for skill updates' settings button is gone: the
setup rails' own pill now carries freshness (Update available / Up to
date, falling back to Installed for blocked or unrecognized copies and
for non-local runtimes the local-only scan cannot vouch for), and
Re-check refreshes both installation detection and the freshness
inventory. Wired for the CLI, Orchestration, Computer Use, and
Per-Workspace Environments rails.
* fix(skills): use the sleek scrollbar style in the update dialog
* chore(skills): regenerate manifest for merged main (v1.4.142-rc.1)
Main advanced to 1.4.142-rc.1 with a v1.4.141 release, so the embedded
appVersion and release mapping were stale on the PR's merged tree. Only
appVersion and the new release entry change; no snapshot digests move
(released history preserved).
* fix(skills): bound and batch freshness work
* fix(skills): harden freshness integrity checks
* fix(skills): accept observed copy topology outcomes
* chore(skills): regenerate manifest for current main
* fix(skills): preserve update terminal lifecycle
* chore(skills): regenerate manifest for current main
* fix(skills): fail closed on stale freshness scans
* chore(skills): regenerate manifest for current main
* fix(skills): preserve freshness safety under focus churn
* feat(skills): group the update modal by skill with plain-language status
The Update skills modal now lists only skills that will update or that can't
(with why), grouped by skill with their install locations nested underneath —
no more one row per placement.
- Statuses collapse to "Update available" / "Can't update" at the skill level.
- A location's problem is a chip (Duplicate, Unrecognized, Inaccessible, Read
only, In a repo, External/Broken link, Plugin cache) with a hover tooltip
that explains what it means for the user and what to do.
- Up-to-date, unrecognized-only, and unreadable-only skills are hidden; a
current/unrecognized/etc. location only appears when it explains a shown skill.
- Copy is de-jargoned (drops "copy"/"placement"/"snapshot"/"official copy") and
names the mechanism as the npx skills update command, not "Orca's update".
- Rename the section to "Update details"; drop the unreachable newer-known state.
Renderer-only: derivation is a pure module (groupSkillFreshness) with unit tests;
no IPC or main-process change. Locales updated for all five languages.
* chore(skills): regenerate manifest for current main (v1.4.143-rc.0)
* feat(skills): don't let a duplicate block the update; clearer skipped copy
- Eligibility: a clean standalone duplicate no longer poisons the whole
name — the canonical copy still updates and the duplicate is flagged;
a duplicate-only skill stays unoffered.
- Update modal: "Can't update" -> "Skipped" with a reason-specific
sentence (edited/read-only/in-a-repo/plugin/link); chips describe only
the location state; footer "Check now" -> "Re-check".
- Settings sidebar nav pills go amber "Update available" when a skill is
updatable, matching the setup cards.
- Localized new strings across en/es/ja/ko/zh.
* chore(skills): regenerate manifest for merged main (v1.4.144-rc.1)
2026-07-16 14:47:28 -07:00
..
2026-07-12 22:10:09 -07:00
2026-07-03 12:52:55 -07:00
2026-07-15 22:29:01 -07:00
2026-05-19 15:44:39 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-12 17:39:18 -07:00
2026-07-12 17:39:18 -07:00
2026-07-11 02:35:01 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-17 11:12:45 -07:00
2026-05-19 00:28:55 -07:00
2026-05-19 00:28:55 -07:00
2026-07-15 12:09:30 -07:00
2026-07-15 12:09:30 -07:00
2026-05-15 22:06:00 -07:00
2026-06-24 00:17:49 -07:00
2026-06-19 16:42:59 -07:00
2026-05-19 15:19:38 -07:00
2026-05-30 02:14:22 -04:00
2026-06-24 00:17:49 -07:00
2026-06-28 16:03:16 -07:00
2026-07-11 21:43:20 -07:00
2026-06-02 18:01:23 -07:00
2026-06-02 18:01:23 -07:00
2026-07-14 15:23:06 -07:00
2026-07-14 15:23:06 -07:00
2026-07-07 19:50:57 -07:00
2026-07-07 19:50:57 -07:00
2026-06-28 15:43:07 -07:00
2026-06-28 15:43:07 -07:00
2026-07-10 23:34:49 -07:00
2026-07-10 17:58:10 -07:00
2026-06-07 01:10:05 -07:00
2026-06-07 01:10:05 -07:00
2026-07-10 23:34:49 -07:00
2026-07-12 18:05:11 -07:00
2026-07-11 14:14:12 -07:00
2026-07-11 14:14:12 -07:00
2026-07-12 17:39:18 -07:00
2026-06-29 16:06:27 -07:00
2026-06-29 16:06:27 -07:00
2026-07-12 19:43:43 -07:00
2026-07-10 18:42:48 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-16 13:26:15 -07:00
2026-05-25 18:56:43 -07:00
2026-07-16 02:57:43 -07:00
2026-07-10 13:48:10 -07:00
2026-07-10 13:48:10 -07:00
2026-07-10 13:48:10 -07:00
2026-07-08 21:47:02 -07:00
2026-07-16 02:57:43 -07:00
2026-06-17 11:12:45 -07:00
2026-06-03 17:14:50 -07:00
2026-05-15 22:46:13 -07:00
2026-06-05 12:35:34 -07:00
2026-05-31 04:21:57 -07:00
2026-06-13 18:53:01 -07:00
2026-06-13 18:53:01 -07:00
2026-07-10 20:02:45 -07:00
2026-07-10 20:02:45 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-18 13:05:57 -07:00
2026-07-10 20:02:45 -07:00
2026-05-17 18:19:43 -04:00
2026-05-17 18:19:43 -04:00
2026-05-26 20:09:54 -07:00
2026-06-15 19:58:55 -07:00
2026-06-15 19:58:55 -07:00
2026-05-15 18:39:32 -07:00
2026-06-29 13:21:20 -07:00
2026-06-29 13:21:20 -07:00
2026-05-15 18:39:32 -07:00
2026-05-15 18:39:32 -07:00
2026-07-03 16:52:08 -07:00
2026-06-26 20:05:47 -07:00
2026-06-07 13:49:38 -04:00
2026-05-17 22:24:38 -07:00
2026-05-17 22:24:38 -07:00
2026-05-31 10:11:33 -07:00
2026-05-31 10:11:33 -07:00
2026-05-02 20:22:40 -07:00
2026-06-08 16:11:32 -04:00
2026-06-08 16:11:32 -04:00
2026-06-16 16:55:17 -07:00
2026-07-15 12:09:30 -07:00
2026-07-15 12:09:30 -07:00
2026-07-15 12:09:30 -07:00
2026-06-02 18:10:31 -07:00
2026-04-03 16:50:28 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-14 15:28:04 -07:00
2026-06-18 11:39:40 -07:00
2026-06-18 11:39:40 -07:00
2026-06-02 18:10:31 -07:00
2026-04-26 17:00:46 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-12 18:05:11 -07:00
2026-07-12 18:05:11 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-12 13:02:29 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-05-19 02:32:53 -07:00
2026-07-14 15:14:17 -07:00
2026-07-14 15:14:17 -07:00
2026-07-12 13:02:29 -07:00
2026-07-12 13:02:29 -07:00
2026-07-13 15:38:02 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-05-25 14:54:47 -07:00
2026-06-17 23:27:26 -07:00
2026-07-16 13:06:21 -07:00
2026-07-16 13:06:21 -07:00
2026-06-15 01:20:04 -07:00
2026-06-15 01:20:04 -07:00
2026-06-16 18:05:15 -07:00
2026-06-16 18:05:15 -07:00
2026-07-11 02:03:14 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-04-28 16:18:22 -07:00
2026-06-13 14:24:26 -07:00
2026-07-11 14:14:12 -07:00
2026-07-11 14:14:12 -07:00
2026-06-30 01:16:55 -07:00
2026-06-30 01:16:55 -07:00
2026-07-10 17:27:47 -07:00
2026-05-14 23:13:37 -07:00
2026-06-02 18:49:13 -07:00
2026-06-08 18:10:16 -07:00
2026-06-08 18:10:16 -07:00
2026-06-08 00:08:57 -07:00
2026-06-08 00:08:57 -07:00
2026-06-29 20:38:11 -07:00
2026-06-29 20:38:11 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-29 22:39:32 -07:00
2026-06-30 11:31:55 -07:00
2026-07-02 11:24:07 -07:00
2026-06-28 13:09:05 -07:00
2026-06-01 05:13:09 -07:00
2026-06-10 14:12:07 -07:00
2026-06-10 14:12:07 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-10 13:38:51 -07:00
2026-06-30 11:31:55 -07:00
2026-06-10 13:38:51 -07:00
2026-06-07 21:07:36 -07:00
2026-06-07 21:07:36 -07:00
2026-06-25 01:49:56 -07:00
2026-05-14 15:20:49 -07:00
2026-05-23 12:21:13 -07:00
2026-05-23 14:15:11 -07:00
2026-05-23 14:15:11 -07:00
2026-05-30 11:05:58 -07:00
2026-07-08 12:01:06 -07:00
2026-05-31 10:02:59 -07:00
2026-06-29 22:38:29 -07:00
2026-06-25 18:42:46 -07:00
2026-06-11 02:34:01 -07:00
2026-06-14 23:23:31 -07:00
2026-06-11 02:34:01 -07:00
2026-06-17 22:21:32 -07:00
2026-07-15 15:24:15 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 01:03:16 -07:00
2026-07-10 01:03:16 -07:00
2026-06-29 15:25:13 -07:00
2026-06-29 15:25:13 -07:00
2026-06-16 18:10:01 -07:00
2026-07-10 17:52:50 -07:00
2026-07-10 17:52:50 -07:00
2026-07-14 15:23:06 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-07-06 15:12:56 -07:00
2026-07-11 01:30:19 -07:00
2026-07-10 02:31:47 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-05-27 17:04:36 -07:00
2026-05-27 17:04:36 -07:00
2026-05-27 16:15:47 -07:00
2026-05-31 11:35:39 -07:00
2026-06-15 19:28:45 -07:00
2026-06-15 19:28:45 -07:00
2026-05-16 04:44:44 -04:00
2026-05-31 11:35:39 -07:00
2026-05-27 16:15:47 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 18:19:36 -07:00
2026-07-10 01:03:16 -07:00
2026-06-19 17:14:55 -07:00
2026-05-31 04:38:37 -07:00
2026-05-31 04:38:37 -07:00
2026-05-22 00:35:30 -07:00
2026-07-10 18:19:36 -07:00
2026-06-16 18:10:01 -07:00
2026-07-13 12:42:55 -07:00
2026-07-13 12:42:55 -07:00
2026-06-24 19:19:31 -07:00
2026-06-24 19:19:31 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-06-14 13:32:05 -07:00
2026-07-15 19:09:14 -07:00
2026-07-15 19:09:14 -07:00
2026-06-28 23:43:33 -07:00
2026-07-15 19:09:14 -07:00
2026-07-15 19:09:14 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-10 18:19:36 -07:00
2026-05-05 17:36:27 -07:00
2026-07-10 17:27:47 -07:00
2026-07-05 11:05:58 -07:00
2026-07-05 11:05:58 -07:00
2026-05-31 02:43:16 -07:00
2026-05-31 02:43:16 -07:00
2026-05-30 13:18:12 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-05-17 20:15:05 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-05-31 03:20:19 -07:00
2026-05-31 03:20:19 -07:00
2026-05-14 15:09:52 -07:00
2026-05-14 15:09:52 -07:00
2026-06-16 15:51:55 -07:00
2026-07-10 13:16:55 -07:00
2026-07-10 13:16:55 -07:00
2026-07-10 13:16:55 -07:00
2026-07-11 21:43:20 -07:00
2026-07-11 20:02:37 -07:00
2026-07-11 02:35:01 -07:00
2026-07-11 02:35:01 -07:00
2026-05-21 16:33:30 -07:00
2026-05-21 16:33:30 -07:00
2026-06-13 18:53:01 -07:00
2026-06-13 18:53:01 -07:00
2026-06-16 15:36:27 -07:00
2026-06-29 12:05:57 -07:00
2026-07-03 19:30:10 -07:00
2026-05-31 00:05:15 -07:00
2026-05-31 00:05:15 -07:00
2026-05-29 20:22:41 -04:00
2026-05-29 20:22:41 -04:00
2026-05-15 13:36:06 -07:00
2026-05-15 13:36:06 -07:00
2026-07-13 20:10:50 -07:00
2026-06-22 14:53:03 -07:00
2026-06-25 18:47:26 -07:00
2026-06-25 18:47:26 -07:00
2026-06-10 13:08:09 -07:00
2026-07-16 00:26:51 -07:00
2026-07-12 16:13:21 -07:00
2026-07-12 16:13:21 -07:00
2026-06-15 22:13:46 -07:00
2026-06-12 15:00:28 -07:00
2026-07-05 23:55:56 -07:00
2026-07-05 23:55:56 -07:00
2026-07-05 23:55:56 -07:00
2026-07-06 00:27:32 -07:00
2026-07-09 22:23:56 -07:00
2026-07-09 22:23:56 -07:00
2026-06-02 21:17:20 -04:00
2026-06-13 15:20:08 -07:00
2026-07-05 23:56:37 -07:00
2026-06-15 18:24:53 -07:00
2026-06-15 18:24:53 -07:00
2026-07-10 21:22:18 -07:00
2026-06-17 16:08:14 -07:00
2026-06-29 12:27:30 -07:00
2026-07-05 23:56:37 -07:00
2026-07-15 13:32:13 -07:00
2026-07-15 13:32:13 -07:00
2026-07-10 19:41:27 -07:00
2026-07-10 19:41:27 -07:00
2026-05-28 20:41:10 -04:00
2026-06-15 19:59:44 -07:00
2026-06-15 19:59:44 -07:00
2026-05-31 10:39:17 -07:00
2026-05-31 10:39:17 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-07-14 11:47:05 -07:00
2026-06-17 22:21:32 -07:00
2026-06-17 18:25:27 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-06-28 15:43:07 -07:00
2026-06-28 15:43:07 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-13 13:07:25 -07:00
2026-06-28 15:43:07 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-06-28 15:43:07 -07:00
2026-06-28 15:43:07 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-05-28 13:38:46 -07:00
2026-05-31 21:31:54 -07:00
2026-07-03 13:38:20 -07:00
2026-05-31 05:55:04 -07:00
2026-05-31 05:55:04 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-01 23:00:26 -07:00
2026-06-04 17:02:00 -07:00
2026-06-04 17:02:00 -07:00
2026-06-02 18:10:31 -07:00
2026-05-15 02:18:46 -07:00
2026-06-18 23:18:33 -07:00
2026-07-10 18:32:51 -07:00
2026-07-09 02:13:13 -07:00
2026-06-30 11:31:55 -07:00
2026-06-20 03:29:21 -07:00
2026-06-20 03:29:21 -07:00
2026-07-12 02:15:11 -07:00
2026-07-12 02:15:11 -07:00
2026-06-19 17:14:55 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-06-29 19:06:59 -07:00
2026-07-14 11:47:05 -07:00
2026-07-09 11:38:26 -07:00
2026-07-09 11:38:26 -07:00
2026-05-15 12:10:06 -07:00
2026-06-19 17:14:55 -07:00
2026-06-17 13:02:47 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-06-19 17:14:55 -07:00
2026-06-28 16:52:55 -07:00
2026-07-08 21:22:06 -07:00
2026-05-30 14:25:34 -07:00
2026-05-30 14:25:34 -07:00
2026-07-09 17:08:35 -07:00
2026-07-09 17:08:35 -07:00
2026-06-09 01:17:34 -07:00
2026-07-12 01:33:08 -07:00
2026-07-12 01:33:08 -07:00
2026-07-12 14:09:15 -07:00
2026-07-12 14:09:15 -07:00
2026-06-28 00:58:17 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-10 21:00:31 -07:00
2026-07-10 21:00:31 -07:00
2026-06-17 16:08:14 -07:00
2026-06-17 16:08:14 -07:00
2026-06-25 21:58:08 -07:00
2026-06-25 21:58:08 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-06-11 20:39:39 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-13 15:38:02 -07:00
2026-05-14 23:13:37 -07:00
2026-07-11 02:13:15 -07:00
2026-06-09 10:43:04 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-05-10 17:17:52 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-10 03:06:44 -07:00
2026-07-10 03:06:44 -07:00
2026-07-10 03:06:44 -07:00
2026-07-10 03:06:44 -07:00
2026-07-10 03:06:44 -07:00
2026-07-10 03:06:44 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-07-13 18:56:36 -07:00
2026-07-13 18:56:36 -07:00
2026-07-10 13:11:24 -07:00
2026-07-14 17:02:06 -07:00
2026-06-15 22:02:51 -07:00
2026-07-08 12:08:27 -07:00
2026-07-10 12:56:17 -07:00
2026-05-30 12:11:39 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-05-14 23:13:37 -07:00
2026-05-30 12:11:39 -07:00
2026-07-08 12:08:27 -07:00
2026-07-10 19:08:12 -07:00
2026-07-16 12:21:07 -07:00
2026-07-16 12:21:07 -07:00
2026-06-14 01:48:26 -07:00
2026-06-14 01:48:26 -07:00
2026-06-15 22:02:51 -07:00
2026-07-16 12:21:07 -07:00
2026-07-08 12:08:27 -07:00
2026-06-14 01:48:26 -07:00
2026-06-14 01:48:26 -07:00
2026-06-14 01:48:26 -07:00
2026-07-16 12:21:07 -07:00
2026-06-14 01:48:26 -07:00
2026-06-14 01:48:26 -07:00
2026-07-08 12:08:27 -07:00
2026-07-10 12:56:17 -07:00
2026-06-29 22:38:29 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-07-08 12:08:27 -07:00
2026-06-29 13:41:13 -07:00
2026-06-29 13:41:13 -07:00
2026-06-03 09:48:03 -07:00
2026-06-03 09:48:03 -07:00
2026-06-03 09:48:03 -07:00
2026-05-28 19:38:41 -07:00
2026-05-28 19:38:41 -07:00
2026-05-27 13:48:40 -07:00
2026-06-02 20:55:35 -07:00
2026-04-06 22:54:02 -07:00
2026-05-25 18:56:43 -07:00
2026-06-25 02:35:51 -07:00
2026-05-18 00:41:54 -07:00
2026-06-29 22:38:29 -07:00
2026-07-08 11:36:19 -07:00
2026-06-29 22:38:29 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-07-15 15:23:35 -07:00
2026-06-19 20:30:51 -07:00
2026-05-31 17:47:15 -07:00
2026-07-10 19:23:12 -07:00
2026-05-28 14:44:35 -07:00
2026-07-08 12:08:27 -07:00
2026-07-15 22:09:37 -07:00
2026-06-10 17:42:49 -07:00
2026-06-10 17:42:49 -07:00
2026-07-04 14:38:05 -07:00
2026-06-29 22:38:29 -07:00
2026-07-04 14:38:05 -07:00
2026-06-29 22:38:29 -07:00
2026-06-28 13:50:00 -07:00
2026-06-28 13:50:00 -07:00
2026-06-28 13:50:00 -07:00
2026-06-28 13:50:00 -07:00
2026-05-20 17:15:29 -07:00
2026-05-30 11:57:55 -07:00
2026-05-20 17:15:29 -07:00
2026-05-30 11:57:55 -07:00
2026-05-30 11:57:55 -07:00
2026-05-30 11:57:55 -07:00
2026-05-30 11:57:55 -07:00
2026-05-30 11:57:55 -07:00
2026-05-30 11:57:55 -07:00
2026-05-15 11:05:21 -07:00
2026-07-05 04:36:24 -04:00
2026-07-16 14:47:28 -07:00
2026-05-15 17:33:04 -07:00
2026-05-15 17:33:04 -07:00
2026-06-28 15:43:07 -07:00
2026-07-11 02:35:01 -07:00
2026-06-10 17:54:33 -07:00
2026-07-08 18:59:28 -07:00
2026-07-08 18:59:28 -07:00
2026-06-08 14:08:35 -07:00
2026-06-08 14:08:35 -07:00
2026-06-08 14:08:35 -07:00
2026-06-19 19:16:05 -07:00
2026-06-19 19:16:05 -07:00
2026-07-08 18:59:28 -07:00
2026-06-28 00:58:17 -07:00
2026-06-28 00:58:17 -07:00
2026-06-26 17:35:32 -07:00
2026-06-19 18:50:05 -07:00
2026-06-19 18:50:05 -07:00
2026-06-26 17:35:32 -07:00
2026-06-26 17:35:32 -07:00
2026-06-26 17:35:32 -07:00
2026-06-26 17:35:32 -07:00
2026-06-26 17:35:32 -07:00
2026-07-08 18:59:28 -07:00
2026-07-08 18:59:28 -07:00
2026-07-08 18:59:28 -07:00
2026-07-08 18:59:28 -07:00
2026-07-08 18:59:28 -07:00
2026-06-07 16:22:16 -07:00
2026-07-06 21:41:23 -07:00
2026-07-06 21:41:23 -07:00
2026-04-14 18:29:50 -07:00
2026-07-15 01:58:46 -07:00
2026-05-15 16:14:56 -07:00
2026-05-15 16:14:56 -07:00
2026-06-17 22:21:32 -07:00
2026-07-05 21:49:04 -07:00
2026-07-05 21:49:04 -07:00
2026-07-10 13:11:24 -07:00
2026-05-26 00:24:45 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 19:10:01 -07:00
2026-06-26 14:28:16 -07:00
2026-06-28 22:25:15 -07:00
2026-06-08 19:32:34 -07:00
2026-06-08 19:32:34 -07:00
2026-06-01 17:30:10 -07:00
2026-06-01 17:30:10 -07:00
2026-06-01 19:04:04 -07:00
2026-06-01 19:04:04 -07:00
2026-05-20 19:12:40 -07:00
2026-05-20 19:12:40 -07:00
2026-06-13 18:53:01 -07:00
2026-06-13 18:53:01 -07:00
2026-05-30 11:57:55 -07:00
2026-05-04 20:46:21 -07:00
2026-06-25 01:49:56 -07:00
2026-07-06 02:12:32 -07:00
2026-07-11 14:24:39 -07:00
2026-05-23 14:15:11 -07:00
2026-05-30 11:57:55 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-06-15 16:40:45 -07:00
2026-06-15 16:40:45 -07:00
2026-06-08 01:00:29 -07:00
2026-06-10 11:16:36 -07:00
2026-06-10 21:51:58 -07:00
2026-07-02 18:17:47 -07:00
2026-03-30 20:47:21 -07:00
2026-07-05 23:56:37 -07:00
2026-07-14 15:23:06 -07:00
2026-07-10 23:41:20 -07:00
2026-07-10 23:41:20 -07:00
2026-06-19 17:14:55 -07:00
2026-06-19 17:14:55 -07:00
2026-07-14 16:00:25 -07:00
2026-07-14 16:00:25 -07:00
2026-04-25 22:26:33 -07:00
2026-07-10 01:28:22 -07:00
2026-07-10 01:28:22 -07:00
2026-07-10 17:27:47 -07:00
2026-06-29 21:37:49 -07:00
2026-06-29 21:37:49 -07:00
2026-06-18 16:48:43 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-07 16:42:43 -07:00
2026-07-07 16:42:43 -07:00
2026-07-10 13:16:55 -07:00
2026-07-07 16:42:43 -07:00
2026-06-24 11:58:51 -07:00
2026-06-24 11:58:51 -07:00
2026-07-10 17:27:47 -07:00
2026-07-11 02:13:15 -07:00
2026-07-11 02:13:15 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 15:25:10 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-05-17 18:48:58 -07:00
2026-07-10 17:27:47 -07:00
2026-07-08 16:33:58 -07:00
2026-07-08 16:33:58 -07:00
2026-07-10 17:27:47 -07:00
2026-07-11 03:02:29 -07:00
2026-05-17 22:24:38 -07:00
2026-07-15 22:09:37 -07:00
2026-05-17 22:24:38 -07:00
2026-07-12 19:43:43 -07:00
2026-07-12 19:43:43 -07:00
2026-07-08 18:57:07 -07:00
2026-07-07 17:50:37 -07:00
2026-07-02 14:50:15 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-06-28 16:15:50 -07:00
2026-06-28 16:15:50 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-07-11 02:35:01 -07:00
2026-06-24 00:17:49 -07:00
2026-06-15 18:38:56 -07:00
2026-06-28 15:25:06 -07:00
2026-06-28 15:25:06 -07:00
2026-05-28 17:29:49 -07:00
2026-06-24 00:17:49 -07:00
2026-07-11 02:35:01 -07:00
2026-07-11 02:35:01 -07:00
2026-07-11 02:35:01 -07:00
2026-07-16 14:47:28 -07:00
2026-06-10 01:22:11 -07:00
2026-06-10 01:22:11 -07:00
2026-06-10 01:22:11 -07:00
2026-06-10 01:22:11 -07:00
2026-05-27 22:12:10 -07:00
2026-07-11 14:49:49 -07:00
2026-07-11 14:49:49 -07:00
2026-07-11 22:37:26 -07:00
2026-07-11 22:37:26 -07:00
2026-06-22 15:25:10 -07:00
2026-07-06 02:12:32 -07:00
2026-07-04 08:17:55 -07:00
2026-07-15 01:40:41 -07:00
2026-06-28 23:20:26 -07:00
2026-07-06 01:05:56 -07:00
2026-07-11 22:37:26 -07:00
2026-07-11 22:37:26 -07:00
2026-07-15 18:52:37 -07:00
2026-05-25 18:56:43 -07:00
2026-05-15 14:00:23 -07:00
2026-06-28 11:38:23 -07:00
2026-06-19 17:14:55 -07:00
2026-07-11 14:14:12 -07:00
2026-07-11 14:14:12 -07:00
2026-05-22 12:17:21 -07:00
2026-07-15 19:07:49 -07:00
2026-05-31 05:59:40 -07:00
2026-05-31 05:59:40 -07:00
2026-07-03 13:58:40 -07:00
2026-07-03 13:58:40 -07:00
2026-07-10 21:22:18 -07:00
2026-06-21 22:39:09 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-07-02 16:47:38 -07:00
2026-07-15 22:09:37 -07:00
2026-07-15 22:09:37 -07:00
2026-05-30 21:20:37 -07:00
2026-05-14 23:30:22 -07:00
2026-05-21 13:22:37 -07:00
2026-07-01 13:17:52 -07:00
2026-07-01 13:17:52 -07:00
2026-07-01 13:17:52 -07:00
2026-07-01 13:17:52 -07:00
2026-05-26 15:54:07 -07:00
2026-05-21 00:46:31 -07:00
2026-06-19 15:34:46 -07:00
2026-06-19 15:34:46 -07:00
2026-05-23 12:33:49 -07:00
2026-07-05 23:56:37 -07:00
2026-07-02 11:24:07 -07:00
2026-07-02 11:24:07 -07:00
2026-07-02 11:24:07 -07:00
2026-07-10 17:52:50 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-07-14 15:23:06 -07:00
2026-07-10 00:19:45 -07:00
2026-07-09 21:54:22 -07:00
2026-07-07 21:24:08 -07:00
2026-07-12 00:36:51 -07:00
2026-07-12 00:36:51 -07:00