ChatWalaʻau v0.93.1
This release adds two new features to ChatWalaʻau -- Inbound Webhook Gateway and Teams Meeting Pipeline -- and fixes web sign-in / SPA delivery behind a TLS-terminating tunnel or reverse proxy (e.g. Microsoft Dev Tunnels).
Highlights
Inbound Webhook Gateway
- Drive ChatWalaʻau from external events. A new Webhooks icon in the sidebar footer (next to Declarative Agents) opens a Cron-Scheduler-style portal to manage webhook sources, review per-source received-notification records (accepted / duplicate / rejected, with the job each one spawned), and toggle a source on or off.
- Microsoft Graph is the first source. Manage Graph change-notification subscriptions from the portal -- subscribe / renew / delete / maintain -- plus a credentials Token health check, a notification-handshake Validate self-test, and a manual Fetch to run a meeting summary on demand.
- Secure by design. The public ingress (
/api/webhook/{source}) is protected by the Graph validation handshake, a constant-timeclientStatecheck, and optional source-CIDR / resource allowlists; the management API is authenticated like every other write endpoint. Graph lifecycle events (reauthorization / removal) are handled automatically. - Off by default. Enable with
WEBHOOK_ENABLED=true; Microsoft Graph access uses a dedicatedGRAPH_*app-only credential set. See the setup guide for the Graph app registration, the Teams Application Access Policy, and the tunnel.
Teams Meeting Pipeline
- Automatic meeting summaries. When a Teams meeting transcript becomes available, ChatWalaʻau resolves the meeting, fetches the transcript via Microsoft Graph, summarizes it into a structured JSON with the LLM, and writes the result into your coding workspace.
- Observable lifecycle. It runs as a Pipeline job with explicit stages -- received -> resolving_meeting -> fetching_transcript -> summarizing -> writing_output -> done (or failed) -- visible with run history in the Pipelines portal.
- Works with or without a subscription. Trigger it live from a Graph notification, or on demand via Fetch (meeting organizer + a Join URL or Graph meeting id) -- handy for testing and backfill. The fetch waits for the transcript artifact (which can lag the end of a meeting) up to a configurable timeout.
Cron Scheduler: system-managed jobs
- The Cron Scheduler can now host feature-owned internal jobs (no script, no coding-workspace gate). Such jobs are shown in the Cron portal but are protected from deletion. The first one renews Microsoft Graph webhook subscriptions; it is created while you have at least one subscription and runs while
CRON_ENABLED=true.
Fixes for tunnel / reverse-proxy access
- No more login redirect loop over a tunnel/LAN with only an API key. A web browser cannot send the Bearer API key, so an instance protected by
API_KEYalone (with browser sign-in disabled) used to loop between the chat and the login page. ChatWalaʻau now shows a clear "browser sign-in is not enabled" message instead of looping. To use the web app remotely, enable the web sign-in lane (AUTH_USERNAME+AUTH_PASSWORD_HASH);API_KEYalone only covers command-line / SDK clients. - Session cookie no longer dropped behind a tunnel / reverse proxy. The web sign-in cookie now defaults to
SameSite=Lax(wasStrict, which could be dropped on cross-site entry into a tunnel domain and re-trigger the loop), and itsSecureflag followsX-Forwarded-Protoso it is correct when the browser is on HTTPS while the backend serves HTTP behind the proxy. NewAUTH_COOKIE_SAMESITEsetting (laxdefault |strict|none). - "Failed to fetch dynamically imported module" (404) after an update. The app shell is no longer cached, so the browser always loads an index that matches the current assets; the app also auto-reloads once if a chunk is stale (e.g. a tab left open across an update).
Breaking changes (read first)
None. This release is fully additive and default-off: the Webhook Gateway and everything it adds are inert unless you set WEBHOOK_ENABLED=true, the Cron Scheduler's new managed jobs do not affect existing script jobs, and the auth/cookie changes are backward compatible (new AUTH_COOKIE_SAMESITE defaults to lax). Upgrading requires no operator action. (One behavior to know: automatic Graph subscription renewal runs as a Cron job, so it needs CRON_ENABLED=true -- otherwise renew manually from the portal.)
Included in this release
This release includes implementation work from:
- v0.93.0 through v0.93.1
Notes
- Internal design management content and architecture control artifacts are intentionally omitted from this release note.
Installation
See the repository README for setup and usage instructions.
Version
- Release version:
0.93.1 - Previous release:
0.92.0