Skip to content

refactor(agent): WIP publish the agent through entry modules - #1303

Merged
gewenyu99 merged 17 commits into
workbench/wizard-functional-a2bfrom
posthog/functional-a3-entries
Sep 23, 2026
Merged

gewenyu99 merged 17 commits into
workbench/wizard-functional-a2bfrom
posthog/functional-a3-entries

Conversation

@gewenyu99

@gewenyu99 gewenyu99 commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

The agent now exposes its runtime API through @agent and its types through @agent/types. Later stack layers can change the implementation behind those entries without changing callers.

Terminal SDK failures and aborts now have explicit result states. Agentic detection stops before a partial transcript can be read as success, preserving an attached Error when one exists.

Implementation and checks

The runtime entry and type entry group exports by the stack layer that will own them. The MCP prompt wrapper loads its streaming module on first use. Skill menu fetching lives in shared code, and debug() writes through a sink installed by the UI.

Lint and architecture checks guard deep agent imports. The architecture list has 38 recorded exceptions at this head. Three production deep imports remain documented for later moves. The runner classifies terminal SDK results and cancels active sibling work after a fatal result. The detector checks the result state before parsing JSON, preserving an original Error or reporting the failure message.

The updated A3 behavior passed in the B1 integration: 3,205 unit tests, typecheck, architecture, lint, and bundle. A3's current remote head passed its configured CI checks. No credentialed or snapshot rerun was made for these fixes.

The frames below were captured before the terminal-result fixes. They have not been rerun at 1443587c. The prior harness run completed 7/7 steps, but two assertions also failed on #1299.

Real-TUI snapshots: express-todo, 26 frames, earlier head

Captured by the wizard-workbench snapshot route (pnpm wizard-ci-snapshots, real startTUI in a PTY) against this branch, project 228144, US. The run completed 7/7 steps with a dashboard and a notebook. Frames are on the image-only branch posthog/a3-snapshots; the .ans sources and a colored HTML report sit next to them.

01-intro

01-intro

02-run

02-run

03-run

03-run

04-run

04-run

05-run

05-run

06-run

06-run

07-run

07-run

08-run

08-run

09-run

09-run

10-run

10-run

11-run

11-run

12-run

12-run

13-run

13-run

14-run

14-run

15-run

15-run

16-run

16-run

17-run

17-run

18-run

18-run

19-run

19-run

20-run

20-run

21-run

21-run

22-outro

22-outro

23-outro

23-outro

24-mcp

24-mcp

25-slack-connect

25-slack-connect

26-keep-skills

26-keep-skills

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
`@agent` exports the runtime values callers use and `@agent/types` the
types; everything outside `src/agent` imports one of the two. The MCP
prompt streaming export loads on first call so the startup chunk does
not grow. The architecture scanner enforces the entries on resolved
paths and ESLint rejects deep `@agent/*` specifiers in the editor.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
`debug()` reports through an injected sink that the UI module installs,
so shared no longer looks the UI up. The progress tag helpers move from
`src/telemetry.ts` to `@utils/telemetry` and the detect error map moves
to programs, which own the detect error kinds. `src/shared` is now its
own surface in the architecture test; the remaining upward edges are
listed with their owners in the stack plan.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci ai-observability
  • /wizard-ci basic-integration
  • /wizard-ci mcp-analytics
  • /wizard-ci replay-vision
  • /wizard-ci revenue
  • /wizard-ci self-driving
  • /wizard-ci warehouse
  • /wizard-ci warehouse-seeded

Test an individual app:

  • /wizard-ci ai-observability/anthropic
  • /wizard-ci ai-observability/google-adk
  • /wizard-ci ai-observability/groq
Show more apps
  • /wizard-ci ai-observability/manual-capture
  • /wizard-ci ai-observability/openai
  • /wizard-ci ai-observability/openai-agents
  • /wizard-ci ai-observability/opentelemetry
  • /wizard-ci ai-observability/vercel-ai
  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/flutter
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci mcp-analytics/custom-dispatcher
  • /wizard-ci mcp-analytics/typescript-sdk
  • /wizard-ci replay-vision/javascript-node
  • /wizard-ci replay-vision/next-js
  • /wizard-ci replay-vision/react-vite
  • /wizard-ci revenue/stripe
  • /wizard-ci self-driving/astro
  • /wizard-ci self-driving/fastapi
  • /wizard-ci self-driving/nuxt
  • /wizard-ci self-driving/react-router
  • /wizard-ci self-driving/sveltekit
  • /wizard-ci warehouse/monorepo-env
  • /wizard-ci warehouse/multi-source-next
  • /wizard-ci warehouse/stripe-node
  • /wizard-ci warehouse/zero-source
  • /wizard-ci warehouse-seeded/next-stripe
  • /wizard-ci warehouse-seeded/next-stripe-declined

Test against a Context Mill branch:

  • /wizard-ci all context-mill:my-branch

Add context-mill:<branch> to any command above to pin the Context Mill branch. It defaults to main.

Results will be posted here when complete.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
@gewenyu99
gewenyu99 added this pull request to stack #1304 September 22, 2026 19:57
Comment thread src/agent/index.ts
Comment on lines +16 to +19
export type * from './types';
export { runAgent, RunOutcome } from './runner';
export { AgentSignals } from './agent-interface';
export { WIZARD_TOOL_NAMES } from './tools';

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be the eventual clean surface.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Stays" group is that surface, and each group below it names the stage that removes it:

/**
* Stays. The agent's contract: the one way to run it, the marker strings
* program prompts embed, and the tool ids programs put in allowedTools and
* disallowedTools.
*/
export type * from './types';
export { runAgent, RunOutcome } from './runner';
export { AgentSignals } from './agent-interface';
export { WIZARD_TOOL_NAMES } from './tools';

@gewenyu99

Copy link
Copy Markdown
Collaborator Author

/wizard-ci self-driving/nuxt

@wizard-ci-bot

wizard-ci-bot Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

🧙 Wizard CI Results

Trigger ID: 4df6ebf
Workflow: View run

App Confidence PR YARA
self-driving/nuxt/recipe-box N/A Failed (logs)

Configuration

Setting Value
Wizard ref posthog/functional-a3-entries
Context Mill ref main
PostHog ref master

Search for trigger ID 4df6ebf in wizard-workbench PRs.

import {
initializeAgent,
runAgent as executeAgent,
executeAgent,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fable says we need to update line 433 now that executeAgent returns failure instead of error

if (result.failure) throw result.failure.error ?? new WizardError(result.failure.message, {}, result.failure.code)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Detection now throws on every non-success result, and a decided failure throws its own Error or one with its message:

if (result.kind !== 'success') {
if (result.kind === 'decided_failure') {
throw result.failure.error ?? new Error(result.failure.message);
}
throw (
result.error ??
new Error(result.message || `Agent error: ${result.classification}`)
);

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Brings main's eight fixes and A1's per-request ask signal onto A3's
cancellation contract. Each ask and task notice owns one AbortController,
which aborts on its own timeout, on the run signal, and on a sibling's fatal
failure through the orchestrator's internal signal. cancelQuestion and
cancelTaskNotice are gone, and the catch around host dismissal lives in the
answerer. On timeout or cancel, the bridge and the seeded-task offer now
settle their own result before aborting the request, so a host that rejects
on dismissal can't win the race. Agentic detection keeps main's two
attempts and A3's tagged results; its timeout returns a tagged
AGENTIC_DETECTION_TIMEOUT failure after the host-abort check.
AgentErrorType joins the agent entry for detection.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
…n a run ends

Terminal analytics. Since A3's tagged results, a decided failure with no
Error object (MCP missing, YARA violation, no progress, API errors read
from output, an SDK result failure, the agent's own [ABORT]) reached
wizardAbort without an Error. So the run was labelled 'cancelled' and
skipped error tracking. wizardAbort now takes an explicit status. The legacy
host passes 'cancelled' only for a host-cancelled run and 'error' for
everything else, and captures a WizardError built from the failure's code
and message. The agent's own [ABORT] returns Failed; Aborted now means only
that the host's signal cancelled the run. What the user sees is unchanged.

Orchestrator funnel. When a sibling's fatal result ended the drain, the
accepted steps it stopped sent no 'orchestrator task blocked' event. The
fatal path now sends them too, through one helper that catches analytics
errors, so a failed capture can't turn a decided result into Crashed.

Linear cancellation. With no siblings, an ask left open when the harness
ended terminally stayed pending until its own timeout. The linear sequence
now owns a run controller, as the orchestrator does: the host signal
forwards to it, and it aborts when the run ends.

The runner and agent READMEs say terminal analytics are the host's.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Carries the guard that keeps a successful run successful when its
terminal analytics flush fails, next to this PR's explicit terminal status
on failure. One import conflict in the adapter test.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
@gewenyu99

Copy link
Copy Markdown
Collaborator Author

Release A: real-TUI sweep, nine programs on 200961f

Each program ran once through the real Ink TUI in a PTY, from a detached worktree pinned to 200961f, against a temporary copy of its workbench app, on project 228144 (US), with its test/e2e.json profile. The nine runs went in parallel.

All nine passed: exit 0, runPhase completed, and the screen path reached the program's outro.

Program App Time Result
posthog-integration express-todo 5m35s ✅ 7/8 tasks
error-tracking express-todo 6m06s ✅ 7/8 tasks
metrics express-todo 3m40s ✅ 3/3 tasks
ai-observability node-weather 4m24s ✅ 7/7 tasks
audit posthog-demo-3000 5m39s ✅ checklist
error-tracking-upload-source-maps cicd-github-actions-node-raw 3m46s ✅ 8/8 tasks
replay-vision court-booking 6m16s ✅ 5/7 tasks
self-driving expense-splitter 8m31s ✅ 9/9 tasks
warehouse-source stripe-saas-demo 2m28s ✅ 6/6 tasks

Known and not from A: warehouse-source says "Data warehouse source connected!" but creates 0 of 1 sources, and replay-vision drafts its scanners but doesn't create them. In both cases the test key lacks the MCP scopes, and main does the same.

Other notes:

  • The skipped tasks are optional: "Add user identification" in posthog-integration and "Collect upload credentials" in error-tracking.
  • replay-vision skipped two scan tasks, "Scan for user frustration" and "Summarize sessions", both marked "skipped as not required". We expected at most one.
  • self-driving's two wizard-ask frames (55 and 61) show only the header and footer, with no question box. Both asks were answered. In the C sweep, the same "Which do you use?" multi-select rendered in full. A solo rerun is in progress to tell a capture glitch from a rendering problem.
  • For posthog-integration and error-tracking, the screen path in the result JSON stops at outro, but their frames go on: to MCP, Slack and keep-skills in posthog-integration, and to keep-skills in error-tracking. That's a known quirk of the host script.

Rendered from the real TUI frames (.ans, color preserved), key frames only: the first and last frame of each screen, plus up to six evenly spaced frames from long runs.

✅ posthog-integration · express-todo · 5m35s · 7/8 tasks · 25 frames

Full journey including MCP and Slack follow-ups.

Screen path: intro → auth → run → outro

Not completed: Add user identification (skipped)

01-intro

posthog-integration 01-intro

02-auth

posthog-integration 02-auth

03-run

posthog-integration 03-run

04-run

posthog-integration 04-run

07-run

posthog-integration 07-run

10-run

posthog-integration 10-run

13-run

posthog-integration 13-run

16-run

posthog-integration 16-run

19-run

posthog-integration 19-run

20-run

posthog-integration 20-run

21-outro

posthog-integration 21-outro

22-outro

posthog-integration 22-outro

23-mcp

posthog-integration 23-mcp

24-slack-connect

posthog-integration 24-slack-connect

25-keep-skills

posthog-integration 25-keep-skills

✅ error-tracking · express-todo · 6m06s · 7/8 tasks · 24 frames

Detect screen, then the orchestrator run.

Screen path: error-tracking-intro → auth → error-tracking-detect → run → outro

Not completed: Collect upload credentials (skipped)

01-error-tracking-intro

error-tracking 01-error-tracking-intro

02-auth

error-tracking 02-auth

03-run

error-tracking 03-run

04-run

error-tracking 04-run

07-run

error-tracking 07-run

10-run

error-tracking 10-run

14-run

error-tracking 14-run

17-run

error-tracking 17-run

20-run

error-tracking 20-run

21-run

error-tracking 21-run

22-outro

error-tracking 22-outro

23-outro

error-tracking 23-outro

24-keep-skills

error-tracking 24-keep-skills

✅ metrics · express-todo · 3m40s · 3/3 tasks · 13 frames

Platform flow on a plain Node API.

Screen path: metrics-intro → auth → run → outro

01-metrics-intro

metrics 01-metrics-intro

02-run

metrics 02-run

03-run

metrics 03-run

04-run

metrics 04-run

05-run

metrics 05-run

07-run

metrics 07-run

08-run

metrics 08-run

09-run

metrics 09-run

10-run

metrics 10-run

11-outro

metrics 11-outro

12-outro

metrics 12-outro

13-keep-skills

metrics 13-keep-skills

✅ ai-observability · node-weather · 4m24s · 7/7 tasks · 27 frames

The agent picks the OpenAI provider variant, instruments calls, writes env vars and a report.

Screen path: ai-observability-intro → auth → run → outro

01-ai-observability-intro

ai-observability 01-ai-observability-intro

02-run

ai-observability 02-run

03-run

ai-observability 03-run

07-run

ai-observability 07-run

11-run

ai-observability 11-run

16-run

ai-observability 16-run

20-run

ai-observability 20-run

24-run

ai-observability 24-run

25-run

ai-observability 25-run

26-outro

ai-observability 26-outro

27-keep-skills

ai-observability 27-keep-skills

✅ audit · posthog-demo-3000 · 5m39s · checklist · 13 frames

Read-only audit. Progress lives in the audit checklist, not the task list.

Screen path: audit-intro → auth → audit-run → audit-outro → keep-skills

01-audit-intro

audit 01-audit-intro

02-auth

audit 02-auth

03-audit-run

audit 03-audit-run

04-audit-run

audit 04-audit-run

05-audit-run

audit 05-audit-run

06-audit-run

audit 06-audit-run

08-audit-run

audit 08-audit-run

09-audit-run

audit 09-audit-run

10-audit-run

audit 10-audit-run

11-audit-run

audit 11-audit-run

12-audit-outro

audit 12-audit-outro

13-keep-skills

audit 13-keep-skills

✅ error-tracking-upload-source-maps · cicd-github-actions-node-raw · 3m46s · 8/8 tasks · 38 frames

Detect picks the project; wizard_ask overlays answered by the driver.

Screen path: source-maps-intro → auth → source-maps-detect → run → wizard-ask → run → wizard-ask → run → source-maps-outro → keep-skills

01-source-maps-intro

error-tracking-upload-source-maps 01-source-maps-intro

02-auth

error-tracking-upload-source-maps 02-auth

03-source-maps-detect

error-tracking-upload-source-maps 03-source-maps-detect

04-run

error-tracking-upload-source-maps 04-run

05-run

error-tracking-upload-source-maps 05-run

06-run

error-tracking-upload-source-maps 06-run

07-run

error-tracking-upload-source-maps 07-run

08-wizard-ask

error-tracking-upload-source-maps 08-wizard-ask

09-run

error-tracking-upload-source-maps 09-run

10-run

error-tracking-upload-source-maps 10-run

14-run

error-tracking-upload-source-maps 14-run

18-run

error-tracking-upload-source-maps 18-run

21-run

error-tracking-upload-source-maps 21-run

25-run

error-tracking-upload-source-maps 25-run

29-run

error-tracking-upload-source-maps 29-run

30-run

error-tracking-upload-source-maps 30-run

31-wizard-ask

error-tracking-upload-source-maps 31-wizard-ask

32-run

error-tracking-upload-source-maps 32-run

33-run

error-tracking-upload-source-maps 33-run

34-run

error-tracking-upload-source-maps 34-run

35-run

error-tracking-upload-source-maps 35-run

36-source-maps-outro

error-tracking-upload-source-maps 36-source-maps-outro

37-source-maps-outro

error-tracking-upload-source-maps 37-source-maps-outro

38-keep-skills

error-tracking-upload-source-maps 38-keep-skills

✅ replay-vision · court-booking · 6m16s · 5/7 tasks · 25 frames

Against court-booking, the app inside replay-vision/react-vite.

Screen path: agent-skill-intro → auth → run → outro

Not completed: Scan for user frustration (skipped), Summarize sessions (skipped)

01-agent-skill-intro

replay-vision 01-agent-skill-intro

02-auth

replay-vision 02-auth

03-auth

replay-vision 03-auth

04-auth

replay-vision 04-auth

05-auth

replay-vision 05-auth

06-auth

replay-vision 06-auth

07-run

replay-vision 07-run

08-run

replay-vision 08-run

11-run

replay-vision 11-run

13-run

replay-vision 13-run

16-run

replay-vision 16-run

18-run

replay-vision 18-run

21-run

replay-vision 21-run

22-run

replay-vision 22-run

23-outro

replay-vision 23-outro

24-outro

replay-vision 24-outro

25-keep-skills

replay-vision 25-keep-skills

✅ self-driving · expense-splitter · 8m31s · 9/9 tasks · 68 frames

Integration-first: composed integration run, handoff, GitHub gate, terminal outro.

Screen path: self-driving-intro → self-driving-integration-check → auth → self-driving-integration-detect → run → self-driving-handoff → self-driving-github → run → wizard-ask → run → wizard-ask → run → outro

01-self-driving-intro

self-driving 01-self-driving-intro

02-self-driving-integration-check

self-driving 02-self-driving-integration-check

03-self-driving-integration-check

self-driving 03-self-driving-integration-check

04-auth

self-driving 04-auth

05-self-driving-integration-detect

self-driving 05-self-driving-integration-detect

06-run

self-driving 06-run

07-run

self-driving 07-run

12-run

self-driving 12-run

17-run

self-driving 17-run

21-run

self-driving 21-run

26-run

self-driving 26-run

31-run

self-driving 31-run

32-run

self-driving 32-run

33-self-driving-handoff

self-driving 33-self-driving-handoff

34-run

self-driving 34-run

35-run

self-driving 35-run

39-run

self-driving 39-run

42-run

self-driving 42-run

46-run

self-driving 46-run

49-run

self-driving 49-run

53-run

self-driving 53-run

54-run

self-driving 54-run

55-wizard-ask

self-driving 55-wizard-ask

56-run

self-driving 56-run

57-run

self-driving 57-run

58-run

self-driving 58-run

59-run

self-driving 59-run

60-run

self-driving 60-run

61-wizard-ask

self-driving 61-wizard-ask

62-run

self-driving 62-run

63-run

self-driving 63-run

64-run

self-driving 64-run

65-run

self-driving 65-run

66-run

self-driving 66-run

67-run

self-driving 67-run

68-outro

self-driving 68-outro

✅ warehouse-source · stripe-saas-demo · 2m28s · 6/6 tasks · 31 frames

Stripe detected from package.json.

Screen path: warehouse-intro → auth → run → wizard-ask → run → outro

01-warehouse-intro

warehouse-source 01-warehouse-intro

02-run

warehouse-source 02-run

03-run

warehouse-source 03-run

06-run

warehouse-source 06-run

09-run

warehouse-source 09-run

13-run

warehouse-source 13-run

16-run

warehouse-source 16-run

19-run

warehouse-source 19-run

20-run

warehouse-source 20-run

21-wizard-ask

warehouse-source 21-wizard-ask

22-wizard-ask

warehouse-source 22-wizard-ask

23-wizard-ask

warehouse-source 23-wizard-ask

24-run

warehouse-source 24-run

25-run

warehouse-source 25-run

26-run

warehouse-source 26-run

27-run

warehouse-source 27-run

28-run

warehouse-source 28-run

29-run

warehouse-source 29-run

30-outro

warehouse-source 30-outro

31-keep-skills

warehouse-source 31-keep-skills

@gewenyu99 gewenyu99 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NotVincent — automated review. Not written or checked by a person. Verify before acting on any of it.

if (from === 'tui' && target !== AGENT_TYPES_ENTRY) {
return `matrix:${from}->${to}`;
}
return null;

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's the potential issue: The known entry shortcut lets shared and environment code bypass their runtime import restrictions.

shared helper imports runAgent from @agent -> checks pass -> forbidden upward dependency goes unflagged

Suggested fix: Address caller restrictions and regression cases in planned C2's boundary-enforcement pass. This is an accepted follow-up, not a blocker for A3.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C2d replaces this checker with per-layer TypeScript configs, and at the C3 head skill-map.ts no longer imports the agent:

import type { InstallSkillResult } from '../skills/skill-install';

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disregarding this one with no change, since the checker is only a sanity ledger and C2d replaces it with compiler-enforced layer configs, where src/shared can resolve only @env, @shared and @utils:

"paths": {
"@env": [
"../../.tsbuild/env/env.d.ts"
],
"@shared/*": [
"./*"
],
"@utils/*": [
"./utils/*"
],

Carries the fence's directory-import patterns and the handoff, benchmark
and scan-summary wiring tests. No textual conflicts. The scan-summary
table's abort case now uses A3's tagged result and expects Failed, since
here an agent's own [ABORT] fails the run and only the host's signal
aborts it.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
… starts

runAgent's pre-aborted return flushed the scan report but dropped the
summary line it returned, so the report file could be written with no
line in the terminal. Every termination path now flushes through one
helper that emits the line as a log event. The scan-summary test table
gains the two host-cancel cases, mid-run and before start; the second
failed before this change.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Brings in main (#1235, 2.77.0) through A2b. One conflict: the legacy adapter
takes A3's @agent and @agent/types imports and adds TASK_OUTCOMES_KEY. The
key and its TaskOutcome type join the public entry in the B2 group, and the
e2e harness reads them from there instead of the orchestrator's queue.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
Brings in main (#1319). No conflicts.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
@gewenyu99
gewenyu99 marked this pull request as ready for review September 23, 2026 21:15
@gewenyu99
gewenyu99 requested review from a team as code owners September 23, 2026 21:15
@gewenyu99
gewenyu99 requested review from a team as code owners September 23, 2026 21:15
@gewenyu99
gewenyu99 requested review from TueHaulund, ablaszkiewicz, arnohillen, fasyy612, hpouillot and ksvat and removed request for a team September 23, 2026 21:15
@gewenyu99
gewenyu99 merged commit d8486dc into main Sep 23, 2026
33 checks passed
gewenyu99 added a commit that referenced this pull request Sep 24, 2026
Release A landed on main as squash commits (#1293, #1297, #1299, #1303).
B1 already carries that content through the A3 branch, so the merge
keeps B1's tree and adds #1334, the one change main has beyond A3, with
B1 import paths.

Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
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.

2 participants