Viska · wr-viska-main · 2026-06-28

Two agents, one demo day.

ViskaMimir (Mastra layer) — shipping research INTO Slack, plus a self-waking event agent.
Room: wr-viska-main · spoke ViskaMimir (0.3) under viska-pm (0.0) · demo target 2026-06-29

Status board

D2 · research → Slack

POST /api/research

E2E proven
prod: 1 /invite away
  • 10 tests · 1224→1264 suite green
  • staging E2E landed real research
  • prod live, awaiting bot invite to #feed
Event-Watch agent

self-wake → research → 'Live'

built · green
frozen pre-demo
  • 40 module tests + 10/10 regression
  • commit fc9a4a7 (local)
  • delivers to 'Live' C0BDRSQRADP
Research-Personas

T12 lens fleet

specced
awaiting go
  • 5 lenses, one msg per lens
  • resolves mimir-016 (unified builder)
  • shares postResearch + runResearch

D2 — the delivery lane (proven)

ViskaRes pipeline
POST /api/research
Bearer auth · rule #19
buildResearchBlocks
grounded · EN
chat.postMessage
Slack #feed
Staging E2E — real ViskaRes payload (5 sections · 8 sources)200 OK
channelC09F44U5BAP (#feed)
ts1782648418.195299
render11 Block Kit blocks, all under limits

The deploy saga — hurdles cleared

HurdleRoot causeResolution
develop push didn't deploy staging, not github-tracked (stuck on 06-17 image)railway up the 4e09e86 tree (hades token)
credless pane couldn't push / deploy / POSTSlack + secret + railway env all UNSET in panehades value-safe sourced env-files (push, secret, railway, bot) — never in context
prod landed in a DM, not #feedprod ALLOWED_CHANNEL_ID = D0A1DATUMT2 (a DM)hades repointed → C09F44U5BAP (#feed) + redeploy
prod POST → channel_not_foundprod bot not a member of #feed (U0A0NJJ2QUC) — pending

How the arc ran

Built D2 endpoint (TDD)
POST /api/research — auth → validate → render → post. Commit 446e50c, 10 tests.
Pushed develop via viska-pm App token
446e50c → develop 4e09e86 (viska-pm-app[bot]); Mímir never pushes with its own identity.
Staging stale — root-caused
upload-only service; railway up the tree instead. Endpoint went live.
Staging E2E proven
real ViskaRes research landed in #feed. ViskaRes confirmed the canonical lane.
Promoted to prod — PR #54 merged
prod is github-tracked → auto-deployed. No railway up.
Prod channel + membership gaps
DM→#feed fixed; bot needs a human /invite (flagged, not overclaimed).
Event-Watch agent built in parallel
spawn-first sub-agent (isolated worktree) + my entities fix. 40 tests + regression green. fc9a4a7.
Holding
armed for the D2 re-POST the instant @mimir is invited to #feed.

Event-Watch — the second agent

/mimir watch "<event>" <when>
countdown
Supabase registry
scheduler wakes on fire
research-on-fire
news · transcripts · data
postResearch
Slack 'Live'
Shipped
  • fully dependency-injected (testable, no clock/network in tests)
  • in-process scheduler + optional POST /api/events/tick
  • durable registry — restart-safe
  • shared postResearch() core (D2 + personas + events)
To go live (post-demo)
  • viska-pm relay fc9a4a7 → develop
  • apply sql/mimir_watched_events.sql (operator)
  • promote module beta → active
  • register a Viska event → real test run

Discipline notes

ViskaMimir (wr-viska-main:0.3) · 2026-06-28 · D2 task 005-mimir-slack-delivery + event-watch module
Specs: docs/specs/SPEC-module-event-watch.md · docs/specs/SPEC-module-research-personas.md