Skip to content

feat(studio): L14a publish pointer and POST /agents/:id/publish - #1080

Merged
LinuxDevil merged 1 commit into
mainfrom
fb-l14a-publish-pointer
Nov 12, 2026
Merged

LinuxDevil merged 1 commit into
mainfrom
fb-l14a-publish-pointer

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Summary

  • server/lifecycle/publish.ts: publishAgent (pins meta.publishedVersion under withAgentLock; captures a kind:'publish' version of the working copy, skipped when its spec hash already equals the latest version's), readPublishedSpec, publishStateOf, PublishError, and registerPublishRoutes (POST /agents/:id/publish).
  • GET /agents/:id records now carry publishState (version, matchesWorkingCopy, publishedAt); AgentRecord.publishState + PublishState added to shared/wireTypes.ts.
  • runtimeClient.publish(agentId, version?) for the L14b publish UI.

Test plan

  • server/lifecycle/__tests__/publish.test.ts — 11 tests: pin-without-write, publish-version capture, explicit pin + idempotent repin, one event per pointer move, concurrent publishes, 404s, readPublishedSpec snapshot vs drifted working copy, publishStateOf drift
  • server/__tests__/publishRoute.test.ts — 9 tests: route shapes, publishState drift flip-flop, 400/404 errors, unpublished null state
  • Server suite 1537/1538 (one known idleVersions timing flake, passes alone); client suite 3981 green
  • tsc server + client clean; fallow dead-code clean; no new complexity findings

Generated with Devin

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@LinuxDevil
LinuxDevil force-pushed the fb-l14a-publish-pointer branch from 4d4aaa5 to 3889928 Compare November 12, 2026 05:21
@LinuxDevil
LinuxDevil merged commit 5f842fa into main Nov 12, 2026
6 checks passed
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