Commit Graph

48 Commits

Author SHA1 Message Date
1eea29cf23 health score toggle 2026-10-05 12:03:35 +05:30
12617b5d81 nutrition panel removed 2026-09-30 11:53:35 +05:30
b73f050669 nutrition 2026-09-29 17:30:18 +05:30
e3fc144d05 auto mail generation 2026-09-29 16:48:10 +05:30
9a991fe5ab cod fix 2026-09-28 19:35:16 +05:30
21818320a0 shift fix 2026-09-25 16:19:51 +05:30
d169d24934 ui fix 2026-09-25 15:21:02 +05:30
aca6344cc9 shift 2026-09-24 15:52:27 +05:30
23da1872f2 agent changes 2026-09-24 12:37:22 +05:30
beeee893f6 changes 2026-09-24 11:42:02 +05:30
f3fe53d2ac agent 2026-09-23 17:25:09 +05:30
8537b09f33 Wire the Buddy composer to the assistant
The panel has been complete except for the one part that answers. Its
composer was deliberately disabled — it used to accept text, light up the
send button, and swallow the submit, because no assistant endpoint
existed. This connects it to the one that does.

It is enabled only when a model is configured AND the page has an agent,
checked at runtime via /assistant/status rather than assumed at build
time. The placeholder says which of the two is missing:

  "Not connected yet"              no model on this deployment
  "No assistant for this page yet" no agent for this route
  "Ask about this page"            live

Two different facts, two different sentences. A person on Inventory can
move to Sales and get an answer today; a person whose deployment has no
model can do nothing from the browser. Flattening both into "not
connected" would be true and useless.

The old rule is kept: never accept a message nothing will read.

An answer shows its working — the tools it ran, their row counts, and a
link to the page holding the same rows. Buddy states things with the
confidence of a sentence, and the only honest way to present that is
beside the evidence, so a person can disagree with it. Refused calls are
shown too: an answer that quietly dropped one would look like Buddy chose
not to look.

A partial answer says so in amber, not as a grey hint. An answer cut off
mid-sentence reads as a complete one otherwise, which is the failure the
flag exists to prevent.

The thread clears on navigation. An answer about Sales sitting above the
Inventory page reads as being about what is on screen; losing the history
is the smaller cost.

Phase 2 ships one agent, covering Console and Sales. The rest arrive as
backend config, not as changes here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 13:14:18 +05:30
34c68034de phase 0 and 1 2026-09-23 11:36:10 +05:30
041dc37861 ui/ux improvement 2026-09-18 16:57:24 +05:30
f25b3fcf65 e2e changes 2026-09-16 17:12:30 +05:30
98398894a5 design 2026-09-15 20:51:01 +05:30
0a11f7543c redesign 2026-09-11 16:32:50 +05:30
8b2c4daef8 updats on the dispatch page 2026-09-10 17:57:00 +05:30
34bf7989f7 dispatch map, plan vs actual, and a fleet page
Three of the features the old console had and ours did not, built on what
the data can actually support rather than on what the column names imply.

Two findings changed the shape of the work:

`riderlogs` is not a GPS trail. Every ping a rider sends carries the SAME
coordinate — one rider's 2,404 pings on 14 August all read 11.052998,
76.929958, and the same holds on every day and region checked. Distance,
speed and "time moving" cannot come from it. The Fleet page therefore
reports presence only: who was online and for how long, inferred from the
gaps between check-ins, because `login`, `logout` and `workhours` are empty
on all 320,132 August rows. It says out loud that it cannot tell a rider
parked all day from one who crossed the city.

The delivery ladder is not the order its columns are in. `starttime` is
later than `arrivaltime` on 316 of 316 rows, which looks corrupt and is not:
`starttime` is per-DROP, stamped when the rider sets off for that address
having finished the last one. Read as assign -> arrive -> pickup -> start ->
deliver, every duration is positive. On tenant 916 that shows the bottleneck
is not the riding: a median 69.5 minutes passes between handing an order to
a rider and that rider reaching the shop, against 0.6 minutes at the counter.

- Map tab on dispatch, fed by `deliveries.riderslat/lon` — the only rider
  positions that move (353 distinct across 461 rows). Tenant-scoped, so a
  shop sees its own rounds. The line joins stops in worked order and says
  it is not a route.
- Plan vs actual tab: promised against delivered, and a step breakdown of
  where the hours go. `actualkms` is excluded — it equals the planned `kms`
  to the decimal on every delivered row, so it is a copy, not a measurement.
- Fleet page in the platform console: a presence gantt and a map of where
  each rider is registered.
- `ridername` holds a delivery status on more rows than it holds a name for
  two riders in five, so names are resolved by excluding the status
  vocabulary first.
- leaflet, wrapped directly rather than via react-leaflet, lazy-loaded so
  only the pages with a map pay for it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYEsb8PNZ19G9R8gUjTU7n
2026-09-09 17:02:21 +05:30
b760c1a078 rider partner page 2026-09-09 15:43:23 +05:30
a94c23c20e profile name change 2026-09-08 19:20:42 +05:30
59828811f9 timing 2026-09-08 15:40:48 +05:30
d54fadef20 category changes 2026-09-08 12:03:23 +05:30
56f183f6f6 console category 2026-09-07 17:50:57 +05:30
954dfb8c00 category 2026-09-07 17:27:27 +05:30
d3785cc303 dispatch fix 2026-09-05 15:38:40 +05:30
5006a4f0d4 dispatch page 2026-09-05 15:01:16 +05:30
37b0833328 health score 2026-09-04 17:31:57 +05:30
e1a16377ea rider creation 2026-09-04 16:03:46 +05:30
416c50755b assign option 2026-09-04 11:31:07 +05:30
743aa93e20 deliveries 2026-09-03 19:13:04 +05:30
d39956a2f1 ask again 2026-09-03 11:17:31 +05:30
aad72cfe42 bulk request 2026-09-02 16:49:47 +05:30
a8e0dc069f guidence 2026-09-01 12:00:46 +05:30
55ed13c284 fix on shelf 2026-08-31 15:50:59 +05:30
b4e77fd6ea updated on shelf 2026-08-31 14:58:55 +05:30
bd133e7cc6 agent conformation 2026-08-31 12:32:09 +05:30
f4a2962981 product name alone made required 2026-08-29 12:46:14 +05:30
29613e25ee upload sheet according to the tenant 2026-08-29 12:08:38 +05:30
32c3bef3ad test bugs fixed 2026-08-28 18:18:50 +05:30
9f64b42f8a removed files 2026-08-28 11:03:56 +05:30
bf4dc4e888 changes 2026-08-27 17:48:20 +05:30
904a5d816f env edited 2026-08-27 17:08:21 +05:30
a214ea67da lat and long 2026-08-27 13:58:19 +05:30
7248e11e65 live update 2026-08-27 11:26:04 +05:30
3545819be8 backend integration started 2026-08-26 18:37:28 +05:30
517a99d577 store user login 2026-08-25 18:00:16 +05:30
1dc582ba07 Initial commit 2026-08-24 20:35:18 +05:30