Skip to content

P0: Fix homelab message sending and prove deployed E2E with Tawny and Kelpie #10

Description

@jusso-dev

Parent: #21

Goal

Fix the current authenticated homelab message-send failure, then prove Muster's critical product and real Tawny/Kelpie flows against the deployed Intel Ubuntu stack. Mock or local-only success does not satisfy this issue.

Current blocker (reported 2026-07-26)

Sending a message from the homelab Muster UI currently throws an error. First action: reproduce with the deployed image, capture the sanitised browser console/network response, server trace ID, and service logs, then add a failing regression test before fixing it.

Scope

Deployed product E2E

  • Run Playwright against the actual homelab URL and exact deployed image digest, not a local dev server.
  • Authenticate using private test credentials supplied only through the test environment.
  • Cover login/logout, room navigation, send by button and Enter, Shift+Enter newline, optimistic state, reload persistence, thread reply, reaction, task creation, delegation, search, and mobile viewport.
  • Use two authenticated browser contexts for real-time delivery, unread state, thread updates, and organisation isolation.
  • Exercise duplicate submits, retry, refresh during send, Redis interruption, worker/web restart, and recovery without duplicate durable records.
  • Capture sanitised trace, screenshots, console, request/response metadata, server trace IDs, and container logs on failure.

Real Tawny and Kelpie

  • Discover deployed/upstream HTTP contracts.
  • Generate least-privilege API credentials using supported mechanisms.
  • Store credentials only in private homelab secrets; never commit, print, screenshot, or log them.
  • Configure connector health, webhooks/polling, retry, and delivery logs.
  • Exercise Tawny inventory, hunt, and approval-gated safe response.
  • Exercise Kelpie search, create/update, timeline, observable, and evidence references.
  • Keep Muster on 3004, Kelpie on 3000, and docs on 3010.

Guardrails

  • Use synthetic organisation, users, rooms, messages, indicators, cases, and response targets.
  • Scope every assertion by organisation and verify cross-tenant denial.
  • Dangerous actions require server-side capability checks and an approval record; default E2E actions remain non-destructive.
  • Never expose real credentials or sensitive homelab data in GitHub artifacts.
  • PostgreSQL is authoritative; Redis/BullMQ outages may degrade execution but must not invent durable state.

Acceptance criteria

  • The reported message-send error is reproduced, diagnosed, fixed, and protected by a deployed regression test.
  • All Muster services and real connectors report truthful health.
  • Critical chat/task flows pass against the deployed homelab in desktop and mobile viewports.
  • Two-browser real-time tests pass; reload and restart preserve durable state.
  • Failure/retry tests produce no duplicate message, task, action, or case.
  • Real Tawny hunt result reaches a Muster room/task history.
  • Approved safe response reaches Tawny once; result records once.
  • Workflow creates/updates a real synthetic Kelpie case and timeline.
  • Cross-tenant, unauthorised, expired-session, and dangerous-action paths fail closed.
  • Secrets are absent from Git, logs, screenshots, traces, and test artifacts.
  • Evidence records image digest, request IDs, timestamps, trace IDs, delivery records, and exact test command.

Verification

  • Extensive Playwright suite pointed at deployed homelab.
  • Connector integration tests against deployed services.
  • Restart/recovery, idempotency, and Redis degradation tests.
  • API key rotation/revocation test.
  • Homelab runbook execution from a clean synthetic state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions