Ben Barclay
bb597e1c02
fix(cron): managed-cron fires execute in the gateway process (live adapters + dashboard forwarder) ( #84339 )
...
* fix(gateway): pass live adapters to cron fire webhook's fire_due
The Chronos fire webhook (/api/cron/fire) called
provider.fire_due(job_id, adapters=None, loop=loop), so every
externally-triggered fire delivered through the standalone path even
with a live gateway in-process. E2EE platforms and relay-fronted
logical platforms (whose ONLY send path is the live relay adapter — no
native credential exists on the box) failed every external fire with
"platform 'X' not configured/enabled", while the same job delivered
fine under the built-in ticker (gateway/run.py passes runner.adapters).
Resolve the runner (self.gateway_runner → app['gateway_runner'] →
_gateway_runner_ref(), the same chain the drain check uses) and forward
its adapters. No runner → adapters=None, preserving the historical
standalone path byte-identically.
Note: does not by itself fix Fly-hosted scale-to-zero deployments where
NAS's callback lands on the DASHBOARD process (internal_port 9119) —
_fire_cron_job_for_profile there has no gateway runner in-process. That
topology needs a separate fire handoff (design pending).
* fix(cron): dashboard forwards Chronos fires to the gateway (503 when unreachable)
The dashboard's /api/cron/fire executed cron jobs in the DASHBOARD
process via _fire_cron_job_for_profile with adapters=None. On hosted
deployments (Fly proxy exposes only the dashboard's port) that made
every managed-cron fire deliver through the standalone send path, which
cannot serve relay-fronted logical platforms (their only sender is the
live relay adapter in the gateway process — no native credential exists
on the box) or E2EE rooms. It also ran the whole agent turn inside the
dashboard: wrong process for memory/session ownership and fire-claim
attribution.
Restore the invariant that the GATEWAY owns cron execution:
- Dashboard route: after verifying the NAS JWT and resolving the job's
profile, FORWARD the fire to the gateway api_server's own
/api/cron/fire on loopback, NAS bearer preserved (the gateway
re-verifies the JWT — defense in depth, no new trust link), and pass
the gateway's response through. Gateway unreachable → 503 so NAS
retries per the Chronos contract (non-2xx = retryable; the store CAS
de-dupes the eventual double fire). Deliberately NO local-execution
fallback.
- Endpoint resolution mirrors gateway/config.py's api_server load order
per target profile (config.yaml extra.port → API_SERVER_PORT from
process env or the profile's .env → 8642), with /p/<profile>/ prefix
routing under multiplex.
- docker/stage2-hook.sh: generate a strong API_SERVER_KEY into .env on
first boot when absent (never overwrites an operator value), so the
loopback api_server passes its startup guard on hosted images. The
fire route itself is NAS-JWT-authed; the key gates the rest of the
api_server surface. The listener binds 127.0.0.1 by default and the
Fly service exposes only the dashboard port.
- _fire_cron_job_for_profile kept but deprecated (late-binding seam
compatibility); no route calls it.
- docs/chronos-managed-cron-contract.md: document the two-hop inbound
topology and the 503-retry semantics.
Depends on the previous commit (fire webhook passes live adapters to
fire_due) — together they make NAS→dashboard→gateway fires deliver over
relay end to end.
* fix(cron): read the profile api_server port via the canonical config loader
CI guard test_config_read_guard flagged the new _gateway_fire_endpoint
for a raw yaml.safe_load of the profile's config.yaml — the exact drift
class the guard exists to kill (raw reads miss the managed-scope
overlay, ${ENV_VAR} expansion, and root-model normalization).
Read through load_config() under a HERMES_HOME override scoped to the
target profile instead (the same pattern the deprecated
_fire_cron_job_for_profile uses for its store scope), and pull the port
with cfg_get. Test updated to stub load_config rather than write a raw
config.yaml.
* fix(gateway): only messaging platforms count for the scale-to-zero arm gate
The stage2 hook now generates API_SERVER_KEY for every Docker container,
and key presence force-enables the api_server platform. The scale-to-zero
arm gate counted every enabled platform, so the loopback api_server
listener made messaging_is_relay_only_or_absent False on every hosted
instance — silently disarming the feature (the not-armed log would show
enabled platforms=['relay','api_server']).
The arm gate and the not-armed logger now share one helper that filters
to enabled MESSAGING platforms, excluding LOCAL/API_SERVER/WEBHOOK —
the same non-messaging exclusion set _connect_platforms already uses.
A genuinely enabled direct-socket platform (Discord/Telegram) still
disarms. Two of the three new tests fail without this fix.
2026-08-12 17:04:44 +10:00
..
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-05 14:08:32 -07:00
2026-08-10 11:07:22 -07:00
2026-08-02 14:55:32 +05:30
2026-08-08 23:56:46 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-20 02:25:44 -07:00
2026-07-29 13:10:23 -07:00
2026-08-04 12:28:39 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 08:57:39 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 12:32:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-31 22:34:52 -07:00
2026-08-08 12:32:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-11 23:36:47 -05:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 23:48:55 +05:30
2026-07-29 21:30:53 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-10 10:40:19 -07:00
2026-07-29 23:16:18 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-22 03:20:09 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 16:07:03 -04:00
2026-07-31 22:36:15 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 21:30:53 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-07-28 12:11:52 -05:00
2026-07-23 17:57:33 +05:30
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-08-09 23:19:39 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 10:53:29 -07:00
2026-07-29 10:53:29 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 16:44:31 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 13:36:08 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 17:19:49 -07:00
2026-08-03 21:16:09 +05:30
2026-07-29 13:39:40 -07:00
2026-08-03 13:47:03 +05:30
2026-07-23 08:26:57 -07:00
2026-07-23 08:26:57 -07:00
2026-08-01 14:29:04 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 17:45:06 +05:30
2026-08-12 17:04:44 +10:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-31 23:33:12 -07:00
2026-07-31 17:26:42 +05:30
2026-07-31 17:26:42 +05:30
2026-07-29 15:28:15 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 18:04:59 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-11 16:00:55 -04:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 18:46:58 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-04 11:53:32 -06:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-07-21 10:09:31 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 14:56:38 +05:30
2026-08-07 09:07:48 -07:00
2026-08-01 10:48:11 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 18:21:58 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 12:32:23 -07:00
2026-07-24 16:02:08 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 22:35:26 -07:00
2026-08-07 20:56:29 +00:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-08-09 22:09:49 -04:00
2026-08-09 21:40:23 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-10 17:02:56 -07:00
2026-08-09 22:09:49 -04:00
2026-08-09 22:09:49 -04:00
2026-08-02 23:18:27 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-01 16:42:51 -07:00
2026-08-04 17:33:36 -07:00
2026-07-29 19:48:37 -07:00
2026-08-08 12:34:46 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-08-09 22:09:49 -04:00
2026-08-05 11:47:05 -04:00
2026-08-05 22:32:55 -07:00
2026-08-02 15:01:11 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-30 07:18:08 -05:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-30 07:18:08 -05:00
2026-07-29 13:39:40 -07:00
2026-08-03 20:40:28 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 12:43:46 -07:00
2026-08-10 12:43:46 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 12:43:46 -07:00
2026-08-10 12:43:46 -07:00
2026-08-10 12:43:46 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 12:43:46 -07:00
2026-07-29 13:39:40 -07:00
2026-07-31 14:03:32 -05:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 18:55:10 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-27 21:10:51 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-22 16:51:01 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:39:40 -07:00
2026-08-03 22:55:36 +05:30
2026-08-08 03:57:00 -07:00
2026-07-29 13:39:40 -07:00
2026-08-01 12:27:31 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 09:44:21 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 18:55:10 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-06 05:00:17 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-07 23:00:28 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-04 19:35:57 +00:00
2026-07-29 13:10:23 -07:00
2026-07-22 21:17:21 -07:00
2026-08-08 19:17:05 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-31 22:39:34 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 16:07:03 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 14:47:11 +05:30
2026-07-29 13:39:40 -07:00
2026-08-02 11:03:41 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 19:47:40 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 22:13:12 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-01 16:40:50 -07:00
2026-07-31 21:31:56 -07:00
2026-08-08 18:35:31 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 12:31:19 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 21:31:56 -07:00
2026-07-31 21:31:56 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 17:02:56 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 17:49:33 -05:00
2026-07-29 13:39:40 -07:00
2026-08-09 10:33:58 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 21:02:40 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 12:33:19 -07:00
2026-08-03 18:44:38 +05:30
2026-08-07 09:44:21 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-06 05:00:17 +05:30
2026-08-10 16:21:17 -05:00
2026-07-24 17:10:39 -07:00
2026-07-29 13:10:23 -07:00
2026-08-10 03:13:08 -05:00
2026-08-10 22:48:24 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 15:28:15 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-08-04 15:10:41 -07:00
2026-07-31 07:43:11 -07:00
2026-07-29 13:39:40 -07:00
2026-08-08 14:01:57 -05:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 22:13:12 +05:30
2026-08-08 04:03:41 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 22:35:31 -07:00
2026-07-31 21:31:56 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 04:33:58 -05:00
2026-08-08 18:58:06 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-01 10:47:20 -07:00
2026-08-08 12:32:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 19:16:59 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-31 22:36:55 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 20:37:17 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 23:33:12 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-01 15:34:23 -07:00
2026-07-27 21:10:51 -07:00
2026-07-28 11:54:01 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 21:30:53 -07:00
2026-08-08 15:10:35 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-05 11:59:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-21 16:36:57 -05:00
2026-07-29 13:39:40 -07:00
2026-08-10 18:04:59 -07:00
2026-07-29 13:39:40 -07:00
2026-07-24 16:00:03 -07:00
2026-08-01 14:30:16 -07:00
2026-08-02 21:13:12 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 16:16:36 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 16:07:16 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-06 05:00:17 +05:30
2026-07-29 13:39:40 -07:00
2026-08-08 21:18:09 -07:00
2026-07-29 13:39:40 -07:00
2026-07-31 22:34:28 -07:00
2026-07-29 13:10:23 -07:00
2026-08-02 09:58:49 -07:00
2026-07-29 13:10:23 -07:00
2026-08-09 22:09:49 -04:00
2026-08-05 10:34:18 -06:00
2026-08-01 16:09:27 +05:30
2026-07-29 13:39:40 -07:00
2026-07-31 22:28:46 -07:00
2026-07-29 10:59:54 -07:00
2026-08-08 20:01:03 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-08-08 19:46:35 -07:00
2026-08-09 23:19:39 -07:00
2026-07-29 13:10:23 -07:00
2026-08-01 17:25:08 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-07 21:02:40 +05:30
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-23 16:55:41 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 22:54:20 +05:30
2026-07-31 03:35:08 -03:00
2026-08-06 05:00:17 +05:30
2026-07-29 13:39:40 -07:00
2026-08-08 13:28:28 +05:30
2026-07-29 13:10:23 -07:00
2026-08-07 17:45:06 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 17:50:58 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-10 22:37:16 -05:00
2026-08-03 17:18:31 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:09:49 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 19:48:37 -07:00
2026-07-29 13:10:23 -07:00