Repository navigation
fix(warehouse): bound the seeded data-source step to a few sources - #1284
Merged
Merged
Conversation
The seeded warehouse step costs the user one credential prompt per detected source, and detection keys off dependency and .env key names, so an ordinary app matches sources it has no intention of importing. The offer was unbounded: a user agreed up front to an interrogation whose length they could not see. Cap the step at the first few sources and let the outro carry the rest as pre-filled links, the same trade the outro's own link limit already makes. A completed step now only suppresses the outro bullets for the sources it was actually handed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Generated-By: PostHog Desktop Task-Id: 6bd7c3ae-e708-4ab0-8ea8-901701317339
🧙 Wizard CIRun 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:
Test all apps in a directory:
Test an individual app:
Show more apps
Test against a Context Mill branch:
Add Results will be posted here when complete. |
edwinyjlim
approved these changes
Sep 22, 2026
gewenyu99
added a commit
that referenced
this pull request
Sep 23, 2026
Brings in the eight main fixes since beccc79 (#1275, #1280, #1284, #1294, #1295, #1301, #1302, #1305). One conflict: agentic detection keeps main's two-attempt retry loop from #1305 and adds A1's progress emitter to the agent it initializes. Generated-By: PostHog Desktop Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
gewenyu99
added a commit
that referenced
this pull request
Sep 23, 2026
Brings the final Release A, through the new B1, into the callable program
host. B2's structure stays; A's agent contract holds throughout:
- asks and task notices take { signal }, and cancelAsk, cancelTaskNotice
and cancelQuestion are gone;
- the linear sequence owns a run controller;
- the orchestrator's fatal path reports blocked tasks;
- the agent never sends terminal analytics.
The adapter calls wizardAbort with an explicit status: 'cancelled' only when
the host cancelled, 'error' otherwise. After a non-composed success it sends
'success' behind the flush guard.
main's fixes land where B2 moved the code:
- #1284's warehouse seed cap goes into posthog-integration/run.ts;
- #1280's scan step goes into B2's downloadSkill;
- #1305's two detection attempts share one inference-auth provider;
- the #1305 timer and B2's host-abort check sit side by side in
agent-interface.
B2's skill-cleanup test now expects an agent [ABORT] to end as failed, and
its host-abort test checks that an unmarked user skill survives.
Generated-By: PostHog Desktop
Task-Id: d14e92bb-6ee1-49b5-8502-39cb80079589
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.
Problem
The seeded warehouse step is the one part of the run that stops to ask the user
for credentials, and its cost to them is one prompt per detected source.
Detection keys off dependency names and
.envkey names, so an ordinary appmatches a long tail of sources it has no intention of importing — an API key in
a
.envfile is not a decision to warehouse that vendor's data.The offer was unbounded. The notice listed every match and the step was handed
every match, so a user was asked to agree, up front and minutes before the first
prompt arrives, to an interrogation whose length they could not see. In the
telemetry for this step the pattern is clear and one-directional: runs offered a
short list are where the connected sources come from, and runs offered a long one
answer no credential prompt at all and connect nothing. Nothing is gained by
offering the tail — it is a reliable way to lose the head as well.
Why: this came out of reading the seeded-task funnel. Accepting the offer and
then dismissing the first credential prompt is the single largest loss in the
flow, and the length of the offer is the part of it the wizard controls.
Changes
WAREHOUSE_SEED_LIMITcaps the sources handed to the seeded step. The noticenames only those, and says where the remainder is going, so the promise the
user answers is the one the run keeps.
buildWarehouseNextStepsno longer drops every bullet when the stepcompleted. A completed step connected only what it was given, so the sources
past the cap are as unconnected as if it had never run and still get their
pre-filled link. The linear sequence passes no completed types, so it is
unchanged.
orchestrator warehouse task queuedgainswarehouse_offered_count. The twoexisting properties keep meaning "detected", so the detection trend reads
across this change while the step's outcome can be rated against what it was
actually given.
Detection, the registry, and the step's own logic are untouched.
Test plan
warehouse-seed-task.test.ts(the step is capped, thenotice names only the capped set, the remainder is mentioned, and nothing is
mentioned when there is no remainder) and in
warehouse-suggestion.test.ts(a completed step still yields links for the sources it was never given).
the touched files (one pre-existing non-null-assertion warning pattern the
test files already use).
tsc --noEmiterror count unchanged frommain(31 pre-existing, none in thetouched files).
Created with PostHog Desktop
🤖 Generated with Claude Code