teknium1
11576390fe
refactor(model): one persist writer for /model across CLI, gateway, TUI, dashboard; ACP + dashboard validate through switch_model
...
One `/model --global` produced four config.yaml shapes. CLI wrote
default/provider/base_url/api_mode and cleared the context pin on a route
change; the gateway rewrote the whole `model:` block (whole-file save_config)
and only set api_mode for `custom`; the TUI wrote three keys and never
touched api_mode, so a switch off an Anthropic-wire endpoint left a stale
`api_mode: anthropic_messages` in config; the dashboard main slot had its own
switched-provider logic, wrote `base_url: ""` and always dropped
context_length. ACP `session/set_model` and `POST /api/model/set` accepted
any model string (parse_model_input + detect_provider_for_model) so a model
no catalog knows, or a provider with no credentials, was handed to the
session / persisted and only failed at inference time.
Canonical: `hermes_cli.model_switch.model_selection_config_updates` (the
shape) + `persist_model_selection(result, config_path=None)` (targeted
per-key `atomic_roundtrip_yaml_update` writes, so sibling
`model_slots`/`model_fallback` keys survive; explicit path for the
multiplexed gateway's profile config) + `apply_model_selection` (same shape
applied to an in-memory `model:` dict for callers that save a whole
document). `atomic_roundtrip_yaml_update(value=None)` now REMOVES the key
instead of writing `key: null`, so per-key and whole-document writers land
the same file. Shape = CLI/gateway semantics: default, provider, base_url
(cleared when the target has none), api_mode (cleared when unresolved),
context_length cleared only when `should_clear_context_pin` says the route
identity changed, inline api_key/api cleared for non-custom targets.
Sites -> canonical:
hermes_cli/cli_model_switch_mixin.py::_persist_global_switch -> deleted; _commit_model_switch calls persist_model_selection
hermes_cli/cli_model_switch_mixin.py::_clear_persisted_context_for_model_switch -> deleted (folded into the shape)
gateway/slash_commands_model.py::_persist_model_switch_to_config -> to_thread forwarder: persist_model_selection(result, ctx.config_path)
tui_gateway/model_switch.py::_persist_model_switch -> deleted; _apply_model_switch calls persist_model_selection
hermes_cli/web_server_config.py::_apply_main_model_assignment -> apply_model_selection(result) (+ explicit custom api_key)
hermes_cli/web_server_config.py::_validated_main_model_selection -> NEW: switch_model(--provider) gate; rejection -> HTTP 400
hermes_cli/web_routers/{models,profiles,config_env}.py main-slot paths -> through _validated_main_model_selection
acp_adapter/server.py::_resolve_model_selection -> deleted; _switch_model calls switch_model (provider:model -> --provider), rejection -> ValueError
Behavior changes: TUI --global now writes/clears model.api_mode and clears a
route-changed context pin; gateway --global no longer rewrites the whole
model block (sibling keys survive) and clears api_mode for every target;
dashboard main slot / profile-create model / custom-endpoint activate now
reject unknown/uncredentialed/unlisted models (HTTP 400) and persist the
resolved base_url/api_mode instead of `base_url: ""`; ACP rejects the same
(ValueError surfaced by the command/protocol handler). Gateway persist runs
on a worker thread against the routed profile's config_path (multiplex-safe).
Cleared keys are removed from config.yaml rather than left as `null`. ACP
still never persists.
Kept `_normalize_main_model_assignment`: switch_model rejects a vendor name
posing as a provider (`moonshotai` -> "Unknown provider"), so the
vendor->aggregator repair is not a duplicate; E2E verified both branches.
No config migration: readers already coalesce `base_url: ""` to absent
(`_config_base_url_for_provider`) and gate api_mode on provider match
(`_provider_supports_explicit_api_mode`), so no stale-shape reader bug.
Tests: tests/hermes_cli/test_model_persist_one_shape.py (four surfaces land
one block; same-route re-pick keeps the pin), tests/acp_adapter/
test_acp_dashboard_model_switch_validation.py (rejection + explicit
provider prefix). Replaces test_acp_set_model_explicit_provider.py and the
two TUI-only persist tests; tests that intercepted the old per-surface seams
(`cli.save_config_value`, `load_config_readonly`, `tui_gateway.server.
_persist_model_switch`) now intercept the canonical seam. Each fix
sabotage-verified red.
2026-09-13 05:21:02 -07:00
..
2026-09-03 13:12:50 -07:00
2026-09-11 14:02:08 +10:00
2026-08-03 17:24:11 +05:30
2026-09-03 02:17:01 +05:30
2026-08-31 11:47:16 -07:00
2026-09-10 23:45:03 +05:30
2026-09-02 16:26:11 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 16:26:11 -07:00
2026-09-07 22:47:33 +05:30
2026-09-12 13:00:29 +05:30
2026-09-02 17:06:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-11 15:28:00 -07:00
2026-07-26 17:15:38 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 00:11:50 -07:00
2026-08-14 11:22:14 -07:00
2026-09-07 22:47:33 +05:30
2026-08-08 01:12:16 +05:30
2026-09-11 02:24:55 -07:00
2026-08-13 00:10:30 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 19:37:59 -07:00
2026-08-02 10:00:44 -07:00
2026-08-07 23:00:28 +05:30
2026-09-11 15:26:46 -07:00
2026-09-10 10:27:07 -07:00
2026-09-12 22:19:44 -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-09-09 10:55:32 -07:00
2026-09-03 19:33:28 -07:00
2026-07-29 13:39:40 -07:00
2026-08-21 21:53:11 +05:30
2026-09-01 02:14:35 -07:00
2026-08-27 20:53:02 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 19:50:46 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 19:50:46 -07:00
2026-08-19 22:56:14 -07:00
2026-08-31 01:04:11 -07:00
2026-08-31 01:04:11 -07:00
2026-09-03 13:12:50 -07:00
2026-08-31 01:04:11 -07:00
2026-09-12 08:27:53 -07:00
2026-09-10 10:27:07 -07:00
2026-08-29 18:23:07 -07:00
2026-09-11 19:37:59 -07:00
2026-09-07 06:00:05 -07:00
2026-08-27 07:33:36 -07:00
2026-09-02 16:11:50 -07:00
2026-08-20 19:56:01 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 01:58:56 +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-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 15:26:09 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-03 01:58:56 +05:30
2026-09-10 10:27:07 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 22:33:45 +05:30
2026-08-21 22:54:04 +05:30
2026-09-02 13:30:50 -07:00
2026-08-21 22:33:45 +05:30
2026-09-03 14:21:52 -07:00
2026-09-07 22:47:33 +05:30
2026-09-13 05:09:06 -07:00
2026-09-12 08:36:14 -07:00
2026-09-07 22:47:33 +05:30
2026-09-11 15:28:00 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 14:16:57 -07:00
2026-09-10 12:08:51 +10:00
2026-08-31 07:28:30 -07:00
2026-08-31 09:05:41 -07:00
2026-08-31 09:05:41 -07:00
2026-08-31 07:30:44 -07:00
2026-08-31 20:57:30 +05:30
2026-08-31 09:49:30 -07:00
2026-08-09 15:02:00 -07:00
2026-08-02 16:16:36 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-07-29 13:39:40 -07:00
2026-09-13 05:07:11 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-20 19:56:01 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 06:10:54 -07:00
2026-07-29 13:10:23 -07:00
2026-09-02 15:32:49 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 11:27:55 +05:30
2026-07-29 18:55:10 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 16:26:11 -07:00
2026-07-29 13:39:40 -07:00
2026-08-31 09:57:13 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 12:42:38 +05:30
2026-09-02 16:26:11 -07:00
2026-08-07 18:41:57 -06:00
2026-08-12 18:25:33 -07:00
2026-08-31 12:21:01 -07:00
2026-09-12 08:42:58 -07:00
2026-09-07 22:47:33 +05:30
2026-08-26 09:59:17 -07:00
2026-08-22 16:45:00 -07:00
2026-08-22 18:05:26 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 19:33:28 -07:00
2026-09-03 13:38:36 -07:00
2026-08-27 20:39:11 +05:30
2026-08-14 20:46:50 -07:00
2026-09-03 14:18:25 -07:00
2026-07-29 13:39:40 -07:00
2026-09-13 05:09:06 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-08 17:51:35 +10:00
2026-07-29 13:39:40 -07:00
2026-07-31 22:32:55 -07:00
2026-09-07 04:46:20 -07:00
2026-09-02 13:30:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 13:30:50 -07:00
2026-09-02 00:56:52 -07:00
2026-09-07 06:00:05 -07:00
2026-08-08 12:29:35 -07:00
2026-07-31 22:35:03 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 15:29:15 -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-09-07 22:47:33 +05:30
2026-09-07 07:06:29 -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-09-07 22:47:33 +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-08-13 00:10:30 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-02 21:14:36 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 21:48:06 -07:00
2026-09-03 02:17:01 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-22 14:55:04 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 14:06:32 -07:00
2026-09-07 22:47:33 +05:30
2026-08-12 20:10:51 -07:00
2026-09-12 21:03:12 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 21:14:36 +05:30
2026-07-29 13:39:40 -07:00
2026-08-04 18:23:04 +00:00
2026-09-03 17:45:53 -07:00
2026-09-03 17:00:26 -07:00
2026-08-16 01:55:51 -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-31 06:28:25 -07:00
2026-09-02 14:06:32 -07:00
2026-07-29 13:39:40 -07:00
2026-08-13 20:30:12 -07:00
2026-08-27 07:33:36 -07:00
2026-09-09 12:16:56 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-20 15:31:21 +10:00
2026-09-13 05:08:20 -07:00
2026-09-07 22:47:33 +05:30
2026-08-08 12:30:19 -07:00
2026-09-06 21:38:34 +05:30
2026-09-02 05:32:31 -07:00
2026-08-02 10:01:16 -07:00
2026-09-12 08:44:00 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 15:38:08 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:10:23 -07:00
2026-09-12 13:00:29 +05:30
2026-09-02 16:11:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-13 05:09:06 -07:00
2026-08-31 10:54:58 -07:00
2026-09-02 06:47:30 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 15:44:00 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 17:24:11 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-10 18:12:02 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 06:47:30 -07:00
2026-09-12 08:26:39 -07:00
2026-09-03 09:32:38 -07:00
2026-09-07 22:47:33 +05:30
2026-08-15 14:20:27 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 03:45:33 +05:30
2026-09-11 03:45:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-12 12:03:39 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-29 20:57:55 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 19:37:59 -07:00
2026-07-24 15:47:12 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 10:55:57 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 11:54:49 -07:00
2026-08-18 15:04:45 -07:00
2026-07-31 23:18:38 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 13:12:50 -07:00
2026-08-03 00:32:17 +05:30
2026-07-29 13:39:40 -07:00
2026-09-11 19:50:46 -07:00
2026-09-02 05:55:36 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-07-29 18:00:18 -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-31 01:04:11 -07:00
2026-08-31 01:04:11 -07:00
2026-09-03 13:49:57 -07:00
2026-09-01 10:52:42 -07:00
2026-08-31 01:04:11 -07:00
2026-09-02 13:30:50 -07:00
2026-08-30 20:39:58 -07:00
2026-08-30 22:19:06 -07:00
2026-09-11 06:21:48 -07:00
2026-09-03 14:18:25 -07:00
2026-08-31 09:57:13 -07:00
2026-09-07 22:47:33 +05:30
2026-09-12 13:00:29 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-20 15:31:21 +10:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 07:01:23 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 14:16:57 -07:00
2026-09-11 19:58:07 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-07-31 21:52:11 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-09-03 13:48:14 -07:00
2026-09-07 14:16:57 -07:00
2026-09-11 19:50:46 -07:00
2026-09-07 14:16:57 -07:00
2026-09-07 14:16:57 -07:00
2026-07-29 13:39:40 -07:00
2026-08-13 20:30:12 -07:00
2026-08-31 09:56:54 -07:00
2026-09-09 11:47:55 -07:00
2026-08-16 01:50:44 -07:00
2026-09-11 03:45:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 07:01:23 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-09 10:43:58 -07:00
2026-08-17 15:12:13 +05:30
2026-07-29 13:10:23 -07:00
2026-08-07 14:34:55 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-02 00:11:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:10:23 -07:00
2026-08-25 13:25:48 +05:30
2026-07-29 13:39:40 -07:00
2026-09-09 09:45:54 -07:00
2026-07-29 19:11:05 -07:00
2026-08-16 19:54:42 -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-13 20:30:12 -07:00
2026-08-02 22:44:38 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-12 08:22:42 -07:00
2026-09-07 22:47:33 +05:30
2026-09-12 12:03:39 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-13 05:21:02 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-13 05:21:02 -07:00
2026-09-12 12:03:39 +05:30
2026-07-29 13:10:23 -07:00
2026-09-13 05:09:06 -07:00
2026-08-19 02:00:16 -07:00
2026-09-11 19:50:46 -07:00
2026-08-29 07:25:17 -07:00
2026-09-13 05:09:06 -07:00
2026-09-13 05:07:50 -07:00
2026-09-10 18:13:53 -07:00
2026-09-12 08:49:16 -07:00
2026-09-11 19:50:46 -07:00
2026-09-11 15:28:00 -07:00
2026-09-11 19:50:46 -07:00
2026-09-02 06:48:31 -07:00
2026-09-11 19:50:46 -07:00
2026-09-10 18:17:22 -07:00
2026-09-02 06:19:03 -07:00
2026-09-11 19:50:46 -07:00
2026-09-11 15:29:15 -07:00
2026-09-11 15:44:00 -07:00
2026-09-02 06:48:31 -07:00
2026-09-11 19:50:46 -07:00
2026-09-11 15:28:00 -07:00
2026-09-11 15:27:23 -07:00
2026-09-11 19:58:07 -07:00
2026-09-11 15:26:09 -07:00
2026-09-12 01:53:15 -07:00
2026-08-23 03:57:47 -07:00
2026-09-11 15:29:15 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-10 23:45:03 +05:30
2026-08-20 15:31:21 +10:00
2026-07-29 13:39:40 -07:00
2026-08-09 22:34:28 +05:30
2026-09-02 07:01:23 -07:00
2026-09-03 13:46:50 -07:00
2026-09-07 06:15:43 -07:00
2026-07-29 13:39:40 -07:00
2026-08-02 11:50:05 +05:30
2026-09-13 05:07:11 -07:00
2026-09-09 09:21:46 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-09 14:08:51 -07:00
2026-08-27 07:33:36 -07:00
2026-09-02 06:36:16 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-24 03:20:06 -07:00
2026-09-10 18:10:48 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 13:31:44 -07:00
2026-08-14 21:41:26 -07:00
2026-09-03 13:12:50 -07:00
2026-08-14 21:56:33 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-14 21:38:54 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-11 19:50:46 -07:00
2026-09-02 06:59:11 -07:00
2026-09-08 17:51:35 +10:00
2026-07-29 13:39:40 -07:00
2026-09-12 21:18:24 -07:00
2026-08-02 10:01:16 -07:00
2026-08-23 20:00:30 -07:00
2026-09-13 05:21:02 -07:00
2026-09-11 15:26:09 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-09 13:06:23 +05:30
2026-09-09 12:20:51 +05:30
2026-09-02 06:48:31 -07:00
2026-08-23 18:25:12 -07:00
2026-09-12 12:03:39 +05:30
2026-09-12 12:03:39 +05:30
2026-09-07 22:47:33 +05:30
2026-09-13 05:09:06 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 14:16:57 -07:00
2026-08-11 09:56:13 +10:00
2026-08-11 09:56:13 +10:00
2026-09-07 14:16:57 -07:00
2026-08-20 15:31:21 +10:00
2026-08-11 09:56:13 +10:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 17:00:26 -07:00
2026-09-05 16:09:46 +05:30
2026-08-24 15:37:22 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-14 11:22:05 -07:00
2026-09-02 16:11:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-13 05:20:26 -07:00
2026-09-07 22:47:33 +05:30
2026-09-08 04:38:47 -07:00
2026-08-31 14:54:18 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 00:17:54 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-02 18:21:58 -07:00
2026-08-03 17:16:57 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 14:36:11 +10:00
2026-09-04 15:41:27 -03:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-09-03 14:18:25 -07:00
2026-08-21 16:25:24 +05:30
2026-09-06 20:49:30 +05:30
2026-09-07 22:47:33 +05:30
2026-09-12 08:33:08 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 16:57:21 +05:30
2026-08-31 11:23:48 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 14:02:55 -07:00
2026-09-11 06:23:23 -07:00
2026-08-31 12:32:33 -07:00
2026-07-29 13:39:40 -07:00
2026-08-03 00:25:20 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-03 14:00:59 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-08-30 05:16:10 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 06:10:54 -07:00
2026-09-07 22:47:33 +05:30
2026-08-31 12:21:01 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-07 06:10:54 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-08-13 10:46:13 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-14 21:47:16 -07:00
2026-09-02 20:43:06 +05:30
2026-09-03 13:46:50 -07:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-09-12 08:30:27 -07:00
2026-09-09 11:05:15 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-01 10:51:37 -07:00
2026-09-02 14:06:48 -07:00
2026-08-15 03:05:23 +05:30
2026-09-02 05:34:11 -07:00
2026-09-07 06:10:54 -07:00
2026-08-27 15:33:32 +10: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-09-07 22:47:33 +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-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-08 05:58:43 -07:00
2026-08-26 15:54:53 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 15:33:32 +10: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-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-27 15:33:32 +10: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-20 15:31:21 +10:00
2026-08-26 15:54:53 -07:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-12 22:15:11 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-02 06:36:16 -07:00
2026-09-02 06:36:16 -07:00
2026-09-10 18:13:53 -07:00
2026-08-20 15:31:21 +10:00
2026-08-04 13:07:44 +05:30
2026-08-04 13:07:44 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 16:44:31 -07:00
2026-09-01 10:51:37 -07:00
2026-08-16 20:32:09 -07:00
2026-07-29 13:39:40 -07:00
2026-08-14 21:57:41 -07:00
2026-09-09 11:14:36 -07:00
2026-08-07 13:28:43 +05:30
2026-09-12 08:27:32 -07:00
2026-09-03 13:46:50 -07:00
2026-09-07 22:47:33 +05:30
2026-09-11 03:45:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-09 09:55:52 -07:00
2026-08-15 01:04:19 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 15:26:09 -07:00
2026-08-20 15:31:21 +10:00
2026-08-20 15:31:21 +10: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-27 07:33:36 -07:00
2026-08-27 07:33:36 -07:00
2026-09-13 05:20:26 -07:00
2026-07-29 13:39:40 -07:00
2026-09-02 16:24:25 -07:00
2026-08-20 15:31:21 +10:00
2026-09-09 10:59:52 -07:00
2026-09-13 05:09:06 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:12:50 -07:00
2026-09-07 22:47:33 +05:30
2026-08-11 09:56:13 +10:00
2026-09-10 12:08:51 +10:00
2026-07-29 13:39:40 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:04:17 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-11 11:54:49 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 06:08:09 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-31 12:28:49 -07:00
2026-08-31 12:28:49 -07:00
2026-08-21 16:25:24 +05:30
2026-09-01 08:24:25 -07:00
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-08-17 16:07:05 +05:30
2026-09-01 12:08:34 -07:00
2026-08-21 16:25:24 +05:30
2026-09-03 17:00:26 -07:00
2026-09-09 10:37:37 -07:00
2026-08-24 17:04:55 +05:30
2026-08-29 20:57:55 -07:00
2026-08-29 20:57:55 -07:00
2026-07-29 17:22:52 -07:00
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-08 12:30:19 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-31 12:28:49 -07:00
2026-08-31 12:28:49 -07:00
2026-09-13 05:07:50 -07:00
2026-07-29 13:39:40 -07:00
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-08-17 16:07:05 +05:30
2026-08-23 19:26:41 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 01:29:35 -07:00
2026-09-07 22:47:33 +05:30
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-21 16:25:24 +05:30
2026-09-03 03:47:38 +05:30
2026-08-25 12:07:36 +05:30
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-08-29 20:57:55 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 05:59:24 -07:00
2026-09-02 05:59:24 -07:00
2026-08-21 16:25:24 +05:30
2026-09-02 14:06:32 -07:00
2026-08-21 16:25:24 +05:30
2026-08-21 16:25:24 +05:30
2026-09-07 22:47:33 +05:30
2026-09-02 15:41:11 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 00:53:06 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-23 17:45:47 -05:00
2026-08-14 16:22:47 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 05:33:13 -07:00
2026-09-07 22:47:33 +05:30
2026-09-10 10:27:07 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 15:26:09 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-09-02 16:25:35 -07:00
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-08 13:28:19 +05:30
2026-09-07 22:47:33 +05:30
2026-09-07 22:47:33 +05:30
2026-08-29 05:57:13 -07:00
2026-09-01 10:11:07 -07:00
2026-09-03 13:46:50 -07:00
2026-07-29 13:39:40 -07:00
2026-09-11 19:50:46 -07:00
2026-09-10 18:16:43 -07:00
2026-07-29 13:39:40 -07:00
2026-09-10 18:16:43 -07:00
2026-08-28 07:50:51 -07:00
2026-09-10 18:16:43 -07:00
2026-08-13 01:51:19 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-10 12:08:51 +10:00
2026-08-27 07:33:36 -07:00
2026-09-03 13:04:17 -07:00
2026-07-29 13:39:40 -07:00
2026-09-03 13:04:17 -07:00
2026-09-12 08:24:55 -07:00
2026-08-24 03:20:06 -07:00
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +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-02 11:50:05 +05:30
2026-09-11 19:04:38 -07:00
2026-08-31 10:41:54 -07:00
2026-09-11 19:04:38 -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-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-09-07 22:47:33 +05:30
2026-07-29 13:39:40 -07:00
2026-08-13 01:51:13 -07:00
2026-08-13 01:51:13 -07:00
2026-09-07 22:47:33 +05:30
2026-07-31 22:35:20 -07:00
2026-07-29 13:39:40 -07:00
2026-08-24 03:20:06 -07:00