Skip to content

[OpenSpec] instant-talk #497

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Specs

Tasks

  • 1.1 Turn-id derivation (roomToken + Talk message id + agent uuid) computed in
  • 1.2 Claim store: insert-only atomic claim with TTL (TTL > turn timeout budget;
  • 1.3 TalkTurnJob::run() claims before executing; an existing live claim ⇒
  • 2.1 TalkTurnDispatcher::dispatch(): keep the durable enqueue first; then
  • 2.2 Post-flush execution: run the claimed turn after the sender's response is
  • 2.3 Define the triggerable-runner contract (pull oldest unclaimed turn, claim,
  • 3.1 TalkBridge: add editMessage(roomToken, messageId, newText, ?agentId)
  • 3.2 TalkTurnService: delivery sink — first chunk posts via
  • 3.3 Resolve the ⏳ acknowledgement when the answer or failure notice lands.
  • 4.1 TalkBotInstaller: register one bot per Talk-enabled agent (name = agent
  • 4.2 TalkAgentBinding: resolve the set of enabled agents for a room from
  • 4.3 TalkMentionMatcher: per-agent matching — @agent-name mention or
  • 4.4 Sessions become per (room, agent): extend TalkSessionRoom mapping;
  • 5.1 Chain descriptor on agent-triggered turns: originating human speaker uid,
  • 5.2 Enforcement in the hand-off path: mention-only, no self-trigger, hop
  • 5.3 Identity: agent-triggered turns execute as the rooting human speaker
  • 6.1 Rewrite docs/talk-chat-bridge.md: "Why the answer is not instant"
  • 7.1 Unit tests (php:8.3-cli, the CI way): claim atomicity + double-delivery
  • 7.2 Fresh containerized PHPUnit run vs. the current baseline — report both
  • 7.3 Live-verify on the dev instance (Talk installed): send an addressed
  • 7.4 openspec validate instant-talk --strict; phpcs/psalm/phpstan clean;

Design

See design.md for technical design details.


Synced from openspec/changes/instant-talk by OpenSpec workflow
App: hermiq

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    openspecManaged by OpenSpec workflowopenspec:tasksOpenSpec phase: Tasksspec:too-largeBuilder bounced: >20 unchecked tasks. Fallback needs-input; re-split via Specter.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions