Written 2026-08-27 PM PDT. Read _CONVENTIONS.md in the val first, then this.
kfieseler/ndx-parts-dev (DEV/staging). Public URL:
https://kfieseler--ffd44ea08d0211f195b01607ee4eb77e.web.val.runcurrent_hours to a Tenna ASSET record — it may register as a
manual meter adjustment and silently distort fleet utilization.
(fuel_entry.current_hours is a different field and is safe.)TENNA_WRITE_KEY requires per-batch approval + a one-row canary.
Write API always returns HTTP 200 — parse errors[], never the status.
approvers / vendors / schedules / warranties / registrations are
destructive replace-sets — omit the key to leave them alone.fl_site_link mappings are manager-owned — added only on
Kaden's explicit go.main.tsx ~line 13. /app.js?v=BUILD is served
max-age=31536000, immutable and the service worker caches under ndx-<BUILD>.
Editing any client file changes NOTHING on a phone until BUILD moves.
It has moved 335 -> 336 -> 338 -> 341 -> 347 -> 349 under this work because of
the parallel chats. Always read the CURRENT value from the val before bumping.
Live value right now: DEV-349.FUEL_JS in fuel.ts is a TS template literal. NO BACKSLASHES ANYWHERE
— not in strings, NOT IN COMMENTS. An escaped-n inside a comment becomes a
real newline, splits the comment, and the rest of the comment executes as code.
Use String.fromCharCode(10). This has caused two separate syntax breaks.resp.body?.cancel is not a function and 500s the NEXT unrelated request.
Run check_floating.ts before shipping. 26 floating promises have been fixed.check_floating.ts and _shipcheck2.ts before every ship.asset-readings-daily returned EMPTY for 8/26
and silently disabled every meter check that depended on it. Same-day meters
exist only via fuel_entry_asset_hours, and only after a reporting refresh.pacToday() = Date.now() - 7h.OPEN_LOGIN = true in DEV — any PIN works. Must be flipped before prod.fuel_meterflag.ts (keyedMeterFlags, impossible keyed
meters, surfaced in the Review tab AND histlog) + stuckSweep() (meters that
do not move between fills) + movedNote() ("moved today" / "has not moved in
N days"). First sweep auto-caught 607/2.check_floating.ts added as a permanent guard._CONVENTIONS.md written into the val as the cross-chat contract.(date, truck, jobname).
This was promised regardless of the route-data answer. STILL NOT DONE.206/2; a manually added route stop can carry the bare 206. The two never
match, so the fill lands in "Not on the route (Tenna)" instead of closing the
stop. Confirmed on 8/27: the route DID have a Yard stop with unit 206, and
the 20-gal fill came in as 206/2.
Data check across all of fl_mach: only two forms exist — /2 (780 rows,
76 units) and bare (57 rows, 35 units) — and 206 is the ONLY base with both
forms, so normalising on the part before / is collision-free against
current data. Kaden said "okay lets push it" but the turn ended before any
edit was made. No code was changed. Confirm scope, then implement.TRANSPORT_JS to the bundle (it was pulled for nothing).MONDAY_TOKEN — its description field holds the live JWT in
cleartext. Kaden's to do, not the assistant's._-prefixed probe files to clean up, on his go.OPEN_LOGIN to false before prod.Source: busybusy-manual-time.md, revised 2026-08-24. Input is the geofence
enter/exit export; Kaden supplies the clock-in and clock-out.
9999 - Shop Time.build_time.py -> Fuel-Crew-TIME-DRAFT-2026-08-27.csv.
Ariel Vivas + Makana Kahalewai, 37 identical rows each, 3:00 AM - 2:00 PM,
11:00 total, 28 units billed. Verified independently from the written CSV:
no gaps, no overlaps, per-row totals correct, no date drift, AM/PM correct.
Timeline: 3:00 pre-trip/load - 3:40 fuel+grease 206/2 at the yard (20 gal) -
4:00 yard exit - 4:13-6:22 Chinatown (10 units, 286 gal) - 6:32-7:01 Silverado
DMV (512/2, 6 gal) - 7:08-7:54 7-Eleven (3 units, 35 gal) - 8:15-8:48 MC4
(5 units, 30 gal) - 9:35-10:12 River City Petroleum (truck refuel, Shop Time) -
11:07-13:14 Creech (8 units, 130 gal) - 13:14-14:00 return/post-trip.
Clock-in 3:00 AM and clock-out 2:00 PM are Kaden's, confirmed. The 20 minutes
on 206/2 is an assistant estimate (gallons rate alone gives ~11 min; the rest
is grease) — changing it only shifts the pre-trip block, not the daily total.