Skip to content

feat(delegation): follow through when Pylon children stop or finish - #603

Merged
rynfar merged 1 commit into
pylonfrom
feat/delegation-parent-followthrough
Sep 17, 2026
Merged

rynfar merged 1 commit into
pylonfrom
feat/delegation-parent-followthrough

Conversation

@rynfar

@rynfar rynfar commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

Pylon children could finish, stop, fail, or need user input while their parent stayed idle indefinitely. This adds event-driven parent follow-through for Pylon child threads only; built-in subagents keep upstream behavior.

The server records child lifecycle observations and batches pending updates into an ordinary parent turn at an eligible idle boundary. Admission preserves parent configuration, rejects stale parent/child state, respects stops and blockers, and rechecks delegation settings. Durable per-notification receipts prevent replay across restarts and long histories. Historical completed children are baselined. Three automatic turns after the latest ordinary user message pause follow-through in the existing work log; sending a new message permits continuation. No polling loop, new panel, provider orchestration service, or database migration.

Updated the shipped delegation skill and user guide. Turning delegation off prevents new automatic parent turns without stopping children. Automatic notifications do not approve actions, retry interrupted children, or treat completion as verified work. Busy parents receive updates at their next eligible idle boundary rather than mid-turn steering.

Validation:

  • 236 focused tests passed across reactor, pure lifecycle logic, admission decider, real SQLite engine, reactor startup, MCP handlers, and existing work-log presentation.
  • Real-engine tests cover atomic parent reservation/receipt, duplicate messages, mixed old/new notices beyond 505 activity rows, settings disabled/missing, and observation ownership. No paid provider calls.
  • Reactor tests cover restart recovery, historical baselines, imported history, busy-parent batching, resolved blockers, native-only exclusion, and background completion including Claude status-bearing progress.
  • Server, contracts, client-runtime, mobile, and web typechecks passed; scoped lint/format passed.
  • Independent adversarial review identified lifecycle, truncated-history deduplication, and settings-admission gaps; each was fixed and regression-tested. Final review found no blockers.

Separate from #597, which fixes stale native-agent status and the misleading sidebar timer. This PR does not alter built-in subagent orchestration.

Model: GPT-6 Astra. Harness: Codex in Pylon.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pylon-marketing Ready Ready Preview Sep 17, 2026 6:13pm UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Sep 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 13.9 KiB −28 B (−0.2%) 15.1 KiB ✅
Codex Thread snapshot wire 7.2 KiB 7.2 KiB +6 B (+0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −34 B (−0.5%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB +42 B (+0.3%) 15.1 KiB ✅
Claude Thread snapshot wire 7.2 KiB 7.2 KiB +7 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.8 KiB 6.8 KiB +35 B (+0.5%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB +44 B (+0.1%) 66.4 KiB ✅
Claude Live turn messages 9 10 +1 (+11.1%) 21 ✅

Baseline: 31a5464 · PR result: f9aac53 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.6 KiB
  • Claude decoded thread snapshot: 116.3 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar
rynfar merged commit b2ca713 into pylon Sep 17, 2026
19 checks passed
@rynfar
rynfar deleted the feat/delegation-parent-followthrough branch September 17, 2026 18:22

This branch was successfully deployed

1 active deployment
Preview — f9aac53d Deployed Sep 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant