AgenticOS
One place to build, run and govern your company's AI agents. Self-hosted, open source, and yours.
Night shift handover for Spring Court
Translation pending
BusinessTypeScript · CSSGitHub @Altra0OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Spring It at Night Shift London (Mubit hackathon). Voice-to-handover AI for residential property teams that learns from manager corrections.
Taken from the repository README
Loading the full README.
Read the full README ↗Spring It turns a night concierge's radio calls into a clean handover, and learns each building's rules from the manager's corrections.
Built at Night Shift London (Mubit hackathon), 24–25 Oct 2026.
This comes straight from the Spring It product, and from six years of front-desk experience in London residential buildings. A night shift lives on the radio, and every building has its own rules that nobody writes down: which door is a fire door, which gate is locked this week, what the day manager wants to decide personally. Today that knowledge sits in people's heads and in binders, and it walks out at every shift change.
Night teams in residential buildings report problems over the radio: a door propped open, a leak, a resident locked out. Those reports end up as scribbled notes, and nothing teaches the system that, in this building, the bin store door is a fire door on the escape route. Spring It logs each report as a structured open item. When a manager corrects an item, the correction becomes building memory, so the next report is handled correctly. Every model call goes through Mubit, which uses those right answers to train this building's own model.
radio call ──► transcript ──► POST /api/report ──► one model call via Mubit
(frozen prompt + tools,
building facts in the message)
│
spoken reply back to staff ◄────────┤
▼
open item on the manager's desk
│
manager corrects it ──────┤ (before/after saved)
▼
building fact ──► included in every later call
│
▼
right answers kept by Mubit ──► adapter trained for
this building
/radio listens on the USB sound card, transcribes the call and sends the text to POST /api/report.src/lib/agent/fingerprint.ts), so every call lands in one Mubit task ("Spring It 3"). Mubit keeps the correct answers as training examples. Training starts once a task has 25 kept examples, and each new adapter version appears in the Mubit console.Mubit lets us deliver a model per building. Beyond the hackathon, the hierarchy is Org > Estate > Building. Each customer unit gets its own model, trained on its own procedures and its own managers' corrections. See docs/vision.md.
The same story npm run demo checks end to end against real Mubit:
npm run demo passes on the iMac with every call on mubit/anthropic/claude-haiku-4-5).step_outcome call returned 404 for our key, so it is off by default (MUBIT_CONTROL=on enables it). The learning loop doesn't depend on it.Needs Node 20+ (tested on 24), a Mubit key with a Claude provider key saved in the Mubit console, and optionally a Neon Postgres URL.
npm install
vercel env pull .env.local # or: cp .env.example .env.local and fill in MUBIT_API_KEY, DATABASE_URL
npm run dev # desk at http://localhost:3000, radio at /radio
npm run demo # second terminal: the story above, with PASS/FAIL checks
npm run demo -- --keep-facts # same, but keeps standalone facts already loaded
Without MUBIT_API_KEY the app uses an offline stand-in model, only for testing the wiring, and the demo prints which model ran. Without DATABASE_URL it uses an embedded Postgres in .data/.