This website requires JavaScript.
82c88379d4
Stop an incident lying about what it is and where it is
Logan Cusano and Claude Opus 5
2026-08-23 01:35:00 -04:00
c7be6416f2
Surface LLM correlation fields in debug view; fix unit-continuity path
Logan Cusano
2026-08-23 01:30:01 -04:00
8fbfe7d6de
Make a failed deploy impossible to miss, and a wildcard CORS harmless
Logan Cusano
2026-08-23 01:26:15 -04:00
33a247d306
Stop thin calls fusing a work shift into one incident (server-26#22)
Logan Cusano and Claude Opus 5
2026-08-20 03:34:48 -04:00
baa9d1811f
Pin *.sh to LF so Windows checkouts cannot ship a CRLF shebang
Logan Cusano
2026-08-20 03:16:28 -04:00
a250c29e3c
Add AI provider degradation registry and alerting (server-26#14)
Logan Cusano
2026-08-20 03:14:22 -04:00
5355095c48
Compare node API keys in constant time on /upload
Logan Cusano
2026-08-20 03:08:06 -04:00
6dfa5bc66d
fix: repair 10 stale tests in test_mqtt_handler.py and test_node_sweeper.py
Logan Cusano and Claude Opus 5
2026-08-20 03:06:41 -04:00
4919b02238
Frontend redesign chunk 8: incidents browse
Logan Cusano
2026-08-19 23:08:36 -04:00
4b5cf1971e
Frontend redesign chunk 7: incident detail rebuild
Logan Cusano
2026-08-19 23:07:28 -04:00
bc636c00ce
Frontend redesign chunk 6: Live view
Logan Cusano
2026-08-19 23:05:49 -04:00
31c0b3addf
Frontend redesign chunk 5: MapView rewrite — draw the incident path
Logan Cusano
2026-08-19 23:03:53 -04:00
eaae452d4e
Frontend redesign chunk 4: navigation and routing
Logan Cusano
2026-08-19 23:01:13 -04:00
8fdedee25b
Frontend redesign chunk 3: type layer honesty and the duplicate fix
Logan Cusano
2026-08-19 22:57:21 -04:00
70d63abeaa
Re-evaluate incident severity on link, stamp resolved_at at every resolution site
Logan Cusano
2026-08-19 22:57:20 -04:00
3a786bc227
Frontend redesign chunk 2: primitives and marks
Logan Cusano
2026-08-19 22:56:02 -04:00
c6bc712b54
Frontend redesign chunk 1: design tokens and type
Logan Cusano
2026-08-19 22:53:20 -04:00
d041c8648d
Run every hook before the admin guard on /nodes and /systems
Logan Cusano and Claude Opus 5
2026-08-18 23:25:24 -04:00
bc191fb59f
Stop one malformed call document 500ing the whole debug view
Logan Cusano and Claude Opus 5
2026-08-18 22:03:17 -04:00
157be0c049
Serve Firebase's auth handler from our own domain
Logan Cusano and Claude Opus 5
2026-08-18 21:59:07 -04:00
4dc3f27ac4
Fix the no-org redirect loop and swallowed Google sign-in errors
Logan Cusano
2026-08-18 21:57:39 -04:00
90a0412066
Bound the correlation debug reads so the view stops hanging
Logan Cusano and Claude Opus 5
2026-08-18 21:13:20 -04:00
c3fe2a3466
Page the org backfill instead of streaming whole collections
Logan Cusano and Claude Opus 5
2026-08-18 21:02:12 -04:00
1a563c995c
Point the org backfill at the database the app actually uses
Logan Cusano and Claude Opus 5
2026-08-18 20:53:20 -04:00
427d2a9f37
Say so loudly when the OpenAI account can no longer be billed
Logan Cusano and Claude Opus 5
2026-08-18 20:41:45 -04:00
83416fe169
Split platform-admin from org-owner, hide Trips from non-founding orgs
Logan Cusano and Claude Opus 5
2026-08-18 20:39:16 -04:00
1b4ed0d09c
Ship /terms, /privacy, and /waitlist as structure, not finished pages
Logan Cusano and Claude Opus 5
2026-08-18 20:38:49 -04:00
4842725a03
Escalate a depleted Gemini balance the same way as a dead model ID
Logan Cusano and Claude Opus 5
2026-08-18 20:37:27 -04:00
2a1d52b7af
Add a real signup path instead of the accidental one
Logan Cusano and Claude Opus 5
2026-08-18 20:34:04 -04:00
c7f985df42
Scope every Firestore hook to org_id and stop granting sessions to nobody's org
Logan Cusano and Claude Opus 5
2026-08-18 20:33:46 -04:00
a3681ea698
Stamp org_id everywhere and gate every route that leaked across tenants
Logan Cusano and Claude Opus 5
2026-08-18 20:28:37 -04:00
74faa55396
Point correlation at models that still exist, and make a dead one loud
Logan Cusano and Claude Opus 5
2026-08-18 20:28:15 -04:00
c09cb72f66
Compare unit IDs by normalised key, not exact string
Logan Cusano and Claude Opus 5
2026-08-16 21:35:06 -04:00
94ce9d48e2
Commit the Firestore security rules that were never in source control
Logan Cusano and Claude Opus 5
2026-08-16 21:31:09 -04:00
7b5258cfdf
Halve the tier-2 thin-call window, from 10 minutes to 5
Logan Cusano and Claude Opus 5
2026-08-16 20:56:58 -04:00
0bd92269d2
Stop httpx logging API keys in plaintext
Logan Cusano and Claude Opus 5
2026-08-16 20:05:29 -04:00
96625fabd0
Stop ambient radio chatter from opening incidents, and refill the map
Logan Cusano and Claude Opus 5
2026-08-16 19:58:02 -04:00
53965e1a19
Rebuild the frontend as a product rather than an internal tool
Logan Cusano
2026-08-16 19:34:47 -04:00
6d5eb4c5f2
Let severity, not incident_type, decide what becomes an incident
Logan Cusano
2026-08-16 18:25:25 -04:00
97013e1505
Stop Whisper hallucinations and dedupe recordings across nodes
Logan Cusano
2026-08-16 17:28:27 -04:00
a2cd2c57ca
Serve call audio through c2-core instead of GCS signed URLs
Logan Cusano
2026-08-16 16:26:41 -04:00
a195563da6
Let edge nodes read /systems with their own api_key
Logan Cusano and Claude Opus 5
2026-08-16 14:19:04 -04:00
55cd1110df
Give mosquitto's bind-mounted dirs to uid 1883, not root
Logan Cusano and Claude Opus 5
2026-08-16 13:29:26 -04:00
a0a414ad21
Revert the CI full-fetch workaround and drop the dead Caddyfile
Logan Cusano and Claude Opus 5
2026-08-16 12:59:52 -04:00
518ac46929
Use a full fetch in CI: Gitea fails to pack a shallow clone
Logan Cusano and Claude Opus 5
2026-08-16 10:09:06 -04:00
052dda0b1f
Point app_url at the bare domain and publish the broker host
Logan Cusano and Claude Opus 5
2026-08-16 10:05:12 -04:00
ee633cbe46
Secure the broker for public exposure: TLS and per-node credentials
Logan Cusano and Claude Opus 5
2026-08-16 09:34:44 -04:00
1f5f1fede8
Serve the frontend on the bare domain instead of app.<domain>
Logan Cusano and Claude Opus 5
2026-08-09 22:35:47 -04:00
12c9ad73bb
Document the no-$-in-vault-values rule that caused the MQTT auth failure
Logan Cusano and Claude Opus 5
2026-08-09 22:28:38 -04:00
971ab74d44
Escape $ in the compose-interpolated .env so MQTT passwords survive
Logan Cusano and Claude Opus 5
2026-08-09 21:28:38 -04:00
6140dd7b9c
Fix prod compose port collision and make ansible deploy re-runnable
Logan Cusano and Claude Opus 5
2026-08-09 21:19:03 -04:00
2e3fde2448
refactor: Clean checkin override parsing and require node type in frontend configuration modal
Logan Cusano
2026-07-12 23:20:39 -04:00
c42bd1902c
feat: Add local system override with 24h timeout support
Logan Cusano
2026-07-12 23:05:53 -04:00
c6684ea61b
Update deploy with next vars
Logan
2026-06-22 02:45:49 -04:00
fa5f91c0fa
Merge pull request 'Infrastructure builds' (#1 ) from build-infrastructure into main
logan
2026-06-22 02:34:58 -04:00
57ff9f8ea3
Merge remote-tracking branch 'origin/main' into build-infrastructure
build-infrastructure
Logan
2026-06-22 02:34:26 -04:00
9fdcad1c46
deploy via Gitea CI registry; provision GCP infra with Terraform
Logan
2026-06-22 02:31:28 -04:00
33700448bf
add Terraform + Ansible infrastructure for GCP deployment
Logan
2026-06-22 02:03:36 -04:00
3defdf18dc
stale calls fix
Logan
2026-06-22 00:06:10 -04:00
1f17b6c0d2
feat: add role-based user management, audit log, and session tracking
Logan
2026-06-22 00:02:09 -04:00
961cc6f36e
add button to clear stale 'active' calls
Logan
2026-06-21 23:45:28 -04:00
d290b89736
New /profile page
Logan
2026-06-21 23:31:10 -04:00
758c6f4115
discord link banner
Logan
2026-06-21 23:23:36 -04:00
6ae4d398f8
add trips permissions
Logan
2026-06-21 20:00:48 -04:00
981f03ac06
allow overlap (note) tags
Logan
2026-06-21 15:52:15 -04:00
47430827d4
Fix discord trip itinerary
Logan
2026-06-21 15:47:07 -04:00
4dd3343026
add event editing
Logan
2026-06-21 15:35:57 -04:00
fce189d8c9
assistant updates
Logan
2026-06-21 15:11:30 -04:00
3fb3bca034
add tags
Logan
2026-06-21 15:00:37 -04:00
a0fdf2486e
chat fixes
Logan
2026-06-21 14:55:34 -04:00
e7622c7e6d
chat box fixes
Logan
2026-06-21 14:47:17 -04:00
21d15d0426
assistant markdown update
Logan
2026-06-21 14:38:53 -04:00
21268ab477
fix: migrate Places and Routes to new GCP APIs
Logan
2026-06-21 14:35:12 -04:00
522748f07a
debugging for trips assistant
Logan
2026-06-21 14:31:26 -04:00
af4079d648
fix build
Logan
2026-06-21 14:15:09 -04:00
39c002d090
Fix assistant
Logan
2026-06-21 14:08:33 -04:00
4295bdf4d2
Merge remote-tracking branch 'origin/main' into build-infrastructure
Logan
2026-06-21 13:51:58 -04:00
18d96193ab
Security fixes
Logan
2026-06-21 13:40:08 -04:00
a1c91c5ed3
Initial infra attempt
Logan
2026-06-21 13:37:03 -04:00
f0a0ea508a
adjust assistant height
Logan
2026-06-21 13:19:45 -04:00
d64259bb18
Fix auth
Logan
2026-06-21 10:14:52 -04:00
7b9aefbcc5
Add UI to trips
Logan
2026-06-21 10:12:33 -04:00
8edb717dd2
Add trips to UI
Logan
2026-06-20 23:34:45 -04:00
fb096d582d
feat: add /trip slash commands + add trips & itinerary system
Logan
2026-06-20 23:25:08 -04:00
a4962d7b0e
map fixes
Logan
2026-06-20 23:19:41 -04:00
4e0e0fc79f
Backend (incident_correlator.py): - Create path (line ~1274): title only uses "at {location}" when location_coords is also set - Update path (line ~1226): same guard — best_coords must be truthy alongside best_location
Logan
2026-06-07 03:34:15 -04:00
e55412d8c7
UI Updates
Logan
2026-06-03 01:08:21 -04:00
9842b18799
Fix correlation false-merge, switch STT to whisper-1 without vocab prompt
Logan
2026-06-03 00:51:25 -04:00
fe6bf55c0e
Fix fetch failure
Logan
2026-06-03 00:19:12 -04:00
f65873d690
Fix TypeScript key prop error on SourceCallPlayer map
Logan
2026-06-01 01:56:51 -04:00
913fe0cbee
Add source call audio playback to vocabulary suggestions
Logan
2026-06-01 01:45:03 -04:00
032eef311f
Fix vocabulary induction loop running too late
Logan
2026-06-01 01:26:54 -04:00
3d51db80d0
Improve extraction accuracy with speaker role inference
Logan
2026-06-01 01:17:49 -04:00
683b05beb1
Silence ERROR log for status messages from deleted nodes
Logan
2026-06-01 01:06:49 -04:00
cbcc85f7b1
Add consensus correlator: rules + Gemini LLM with smart tiebreaker
Logan
2026-06-01 00:56:11 -04:00
6bf4333b72
Make correlation conservative: no time_fallback, pursuit-aware proximity, tiered thin path
Logan
2026-06-01 00:08:19 -04:00
b77d2cce36
Fix over-correlation: geocoding precision, thin path ambiguity, skip_reason propagation
Logan
2026-05-31 23:51:46 -04:00
f774be12b8
Fix correlation over-merge, thin-call hallucination, and geocoding accuracy
Logan
2026-05-26 02:20:15 -04:00
5eed4e08ce
Implement delete node function
Logan
2026-05-25 20:20:50 -04:00
fa5c53891c
Add PD/Town name for TG import
Logan
2026-05-25 16:42:09 -04:00