Skip to content

feat(parity): Item B Phase 1 substrate — live-delivery-v3 daemon-IPC attachment primitive#91

Merged
mikemolinet merged 1 commit into
mainfrom
feat/item-b-phase-1-substrate
May 12, 2026
Merged

feat(parity): Item B Phase 1 substrate — live-delivery-v3 daemon-IPC attachment primitive#91
mikemolinet merged 1 commit into
mainfrom
feat/item-b-phase-1-substrate

Conversation

@mikemolinet
Copy link
Copy Markdown
Collaborator

Summary

Parity port of cueapi/cueapi#805 (merged 03:07:18Z). Mike Q-B ratify locked the ASYNC fire-accept dispatcher path 2026-05-12 ~00:38Z.

Design doc: https://trydock.ai/mike/live-delivery-v3-build-hub
Direction of parity: private-leads, OSS-lags.

What ships

5 new files + 3 modifications:

File Type
`alembic/versions/035_agent_live_sessions_ipc_attachment.py` NEW (renumbered from private's 063)
`app/schemas/ipc_attachment.py` NEW (verbatim)
`app/services/ipc_attachment_service.py` NEW (verbatim)
`app/routers/ipc_attachments.py` NEW (verbatim)
`tests/test_ipc_attachments.py` NEW (verbatim, 42 tests)
`app/models/agent_live_session.py` MODIFIED (4 cols + 2 indexes + CHECK)
`app/routers/cues.py` MODIFIED (_build_ipc_delivery_metadata helper + fire_cue stamping)
`app/main.py` MODIFIED (registered router + reconcile_router)
`parity-manifest.json` UPDATED

OSS-specific adaptations

  • Migration renumbered: private 063 → OSS 035 (OSS alembic head was 034 at port-time; private chain at 064 post-rebase to cueapi-three's #804). down_revision adjusted accordingly. Documented in parity-manifest deviation note.
  • All other files verbatim — OSS endpoint shapes are identical to private for Item B scope.

Schema (migration 035, backwards-compat zero-churn)

All 4 columns nullable/defaulted so existing v2.x rows continue unchanged:

  • `ipc_session_token VARCHAR(32)` — daemon-issued ULID
  • `transport VARCHAR(8) NOT NULL DEFAULT 'poll'` + CHECK IN `('ipc','poll')`
  • `daemon_id UUID` — stable per-install Desktop daemon identity
  • `last_reconciled_at TIMESTAMPTZ` — bumps on reconcile

Plus 2 indexes (`ix_agent_live_sessions_daemon`, `ix_agent_live_sessions_transport`).

Test plan

  • Local: 42/42 OSS tests pass (`tests/test_ipc_attachments.py`)
  • CI: green on cueapi-core
  • parity-check action: no warnings (manifest updated with 3 new entries + 3 deviation note bumps)

🤖 Generated with Claude Code

…attachment primitive

Parity port of cueapi/cueapi#805 (merged 03:07:18Z). Mike Q-B ratify
locked the ASYNC fire-accept dispatcher path 2026-05-12 ~00:38Z.

Direction of parity: private-leads, OSS-lags.

## Files added
- alembic/versions/035_agent_live_sessions_ipc_attachment.py — OSS migration
  (renumbered from private's 063; down_revision=034 matches OSS alembic head)
- app/schemas/ipc_attachment.py (verbatim from private)
- app/services/ipc_attachment_service.py (verbatim from private)
- app/routers/ipc_attachments.py (verbatim from private)
- tests/test_ipc_attachments.py (verbatim from private; 42 tests pass)

## Files modified
- app/models/agent_live_session.py — added 4 cols (ipc_session_token,
  transport, daemon_id, last_reconciled_at) + 2 indexes
  (ix_agent_live_sessions_daemon, ix_agent_live_sessions_transport) +
  CheckConstraint valid_transport
- app/routers/cues.py — added _build_ipc_delivery_metadata pure helper +
  fire_cue stamps execution.outcome_metadata when target row has
  transport='ipc'
- app/main.py — registered ipc_attachments.router + ipc_attachments.reconcile_router
- parity-manifest.json — 3 new entries + 3 deviation note bumps

## Schema (migration 035)
All 4 columns nullable/defaulted so existing v2.x rows continue unchanged:
- ipc_session_token VARCHAR(32) — daemon-issued ULID
- transport VARCHAR(8) NOT NULL DEFAULT 'poll' + CHECK IN ('ipc','poll')
- daemon_id UUID — stable per-install Desktop daemon identity
- last_reconciled_at TIMESTAMPTZ

## Local: 42/42 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Parity check

This PR modifies files tracked in parity-manifest.json:

  • alembic/versions/035_agent_live_sessions_ipc_attachment.py
  • app/main.py
  • app/routers/cues.py
  • app/routers/ipc_attachments.py
  • app/schemas/ipc_attachment.py
  • app/services/ipc_attachment_service.py

Please confirm one of the following in a reply or PR description update:

  1. The equivalent change has been applied to the private cueapi monorepo. Link the PR.
  2. This change is OSS-only and does not need porting. Briefly explain why (e.g. "fixes a bug that only exists in the OSS build").
  3. A follow-up issue has been filed to port the reverse direction. Link the issue.

This is a soft check — it does not block merge. The goal is visibility, not friction. See HOSTED_ONLY.md for the open-core policy.

@govindkavaturi-art govindkavaturi-art enabled auto-merge (squash) May 12, 2026 03:15
@mikemolinet mikemolinet merged commit 65c9b0d into main May 12, 2026
7 checks passed
@mikemolinet mikemolinet deleted the feat/item-b-phase-1-substrate branch May 12, 2026 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant