feat(platform): inject restart context system message (#19 Layer 1) - #65
Merged
Merged
Conversation
After a workspace restart (HTTP /restart or programmatic RestartByID) and re-registration, the platform sends a synthetic A2A message/send to the workspace containing: - restart timestamp - previous session end timestamp + human duration - env-var keys now available (keys only — never values) The message is rendered in the format proposed in #19 and marked with metadata.kind=restart_context so agents can detect and handle it specifically if they choose. Skip path: if the workspace doesn't re-register within 30s, log and drop. The Restart HTTP response is unaffected by delivery success. Layer 2 (user-defined restart_prompt via config.yaml / org.yaml) is deferred — tracked as a separate follow-up issue. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Merged. noteworthy: access-control-bypass — introduces |
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Apr 14, 2026
#65) - edit-history/2026-04-14.md: append tick-4 section covering the 12 modular guardrail plugins (#63), global-secrets auto-restart fan-out (#64, fixes issue #15), and synthetic restart-context A2A message (#65, fixes issue #19 Layer 1; Layer 2 deferred to issue #66). - CLAUDE.md: bump Go test count 699 -> 726 (measured); note global secrets auto-restart on SetGlobal/DeleteGlobal in the route table; add Workspace Lifecycle paragraph for the restart-context message and its system:restart-context caller prefix. - PLAN.md: bump Go test count in the coverage table; record issues #15 and #19 Layer 1 as launched; add new Backlog entry for the Layer 2 follow-up (issue #66). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Apr 14, 2026
Backlog items 11-14 used sequential enumeration (#64/#65/#66/#67) as intra-doc bookkeeping. Those numbers now collide with actual merged PRs and open issues with completely different scopes: - PR #64 = auto-refresh global_secrets (not "delegations list") - PR #65 = restart context Layer 1 (not "per-agent repo access") - Issue #66 = restart_prompt Layer 2 (not "SDK swallows stderr") - PR #67 = docs sync tick-4 (not "MCP localhost default") Strip the misleading refs and add a footnote explaining the cleanup. If/when any of these items get prioritized, file real GitHub issues. Tracked in cron-learnings tick-3 entry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
molecule-ai Bot
pushed a commit
that referenced
this pull request
Apr 21, 2026
…layer1 feat(platform): inject restart context system message (#19 Layer 1)
molecule-ai Bot
pushed a commit
that referenced
this pull request
Apr 21, 2026
#65) - edit-history/2026-04-14.md: append tick-4 section covering the 12 modular guardrail plugins (#63), global-secrets auto-restart fan-out (#64, fixes issue #15), and synthetic restart-context A2A message (#65, fixes issue #19 Layer 1; Layer 2 deferred to issue #66). - CLAUDE.md: bump Go test count 699 -> 726 (measured); note global secrets auto-restart on SetGlobal/DeleteGlobal in the route table; add Workspace Lifecycle paragraph for the restart-context message and its system:restart-context caller prefix. - PLAN.md: bump Go test count in the coverage table; record issues #15 and #19 Layer 1 as launched; add new Backlog entry for the Layer 2 follow-up (issue #66). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
molecule-ai Bot
pushed a commit
that referenced
this pull request
Apr 21, 2026
Backlog items 11-14 used sequential enumeration (#64/#65/#66/#67) as intra-doc bookkeeping. Those numbers now collide with actual merged PRs and open issues with completely different scopes: - PR #64 = auto-refresh global_secrets (not "delegations list") - PR #65 = restart context Layer 1 (not "per-agent repo access") - Issue #66 = restart_prompt Layer 2 (not "SDK swallows stderr") - PR #67 = docs sync tick-4 (not "MCP localhost default") Strip the misleading refs and add a footnote explaining the cleanup. If/when any of these items get prioritized, file real GitHub issues. Tracked in cron-learnings tick-3 entry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Jun 12, 2026
…d_env from IsPlatform (proper SSOT, task #65)
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Jun 12, 2026
…d_env from IsPlatform (proper SSOT, task #65)
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Jun 12, 2026
…d_env from IsPlatform (proper SSOT, task #65)
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Jun 12, 2026
…d_env from IsPlatform (proper SSOT, task #65)
HongmingWang-Rabbit
pushed a commit
that referenced
this pull request
Jun 12, 2026
…d_env from IsPlatform (proper SSOT, task #65)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #19 partially — Layer 1 (platform-managed context) only. Layer 2 (user restart_prompt) deferred to a follow-up issue.
Change
After workspace restart and re-registration, platform sends an A2A
message/sendto the workspace as a synthetic user message containing:Covers both the HTTP
POST /workspaces/:id/restartpath and the programmaticRestartByIDpath (auto-restart after secret change, container death, liveness timeout).Metadata on the A2A message:
```
"metadata": { "kind": "restart_context", "source": "platform", "layer": 1, "restart_context": true }
```
Skip path
If the workspace doesn't come back online within 30s, log and drop. Restart response is unaffected.
Safety
Test plan
🤖 Generated with Claude Code