You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every LLM smoke run has been red since mid-July for two stacked reasons.
Access: the assistant domains sit behind the project firewall — Bot
Protection challenges non-browser sources and the assistant-origin-guard
rule denies POSTs without an app Origin — so the script's plain fetches
died with 403/429 before reaching the service. The smoke now sends
x-vercel-protection-bypass, matched by the assistant-smoke-bypass firewall
rule (first in the chain, action Bypass); the workflow loads the secret
from 1Password as VERCEL_AUTOMATION_BYPASS_SECRET with continue-on-error,
so a missing vault item degrades to today's failure instead of a new one.
Scenarios: the 403 masked that the script still tested the retired
deterministic pipeline (POST /issues/preview, POST /issues) — those routes
are gone since the v2 assistant-ui migration, and their 404 text surfaced
as a JSON parse error. The scenarios now exercise the real v2 flow: the
agent drafts a createLinearTicket tool call, the stream pauses on a
tool-approval-request, and an approval resume (the history re-sent ending
on the assistant message whose tool part carries approval) executes the
creation. Off-topic asserts no draft is offered; the bug report approves
the draft and checks the created ticket's identifier/url; the feedback
scenario checks the draft intent without approving, so it creates nothing.
A one-turn clarifying question from the model is tolerated before failing.
Verified against dev: health and draft/approval chunks live; the resume
wire format mirrors the chat route's unit-test fixture. The full creation
path needs a fresh IP (the dev per-IP new-session budget was exhausted
while testing) — first CI run will confirm.
// The transcript carries no support request: the agent must decline in text and never
187
+
// draft a ticket for approval.
188
+
if(turn.draftInput||turn.approvalRequest){
132
189
thrownewError(
133
-
`expected 422 for an off-topic transcript, got ${issue.status}`,
190
+
`expected no ticket draft for an off-topic transcript, got:${JSON.stringify(turn.draftInput?.input)}`,
134
191
);
135
192
}
136
193
},
137
194
);
138
195
139
196
awaitrunScenario(
140
-
'bug report previews a reviewable ticket and creates it',
197
+
'bug report drafts a reviewable ticket and creates it on approval',
141
198
async()=>{
142
199
constsessionId=randomUUID();
143
-
constturn=awaitsendChatTurn(sessionId,[
144
-
buildUserMessage(
145
-
'I found a bug in the app: the proposal page crashes with a blank screen whenever I open any proposal on ethereum mainnet. It started today and reproduces every time I click a proposal in the list. My email is llm-smoke@aragon.org.',
146
-
),
147
-
]);
148
-
if(turn.text.length===0){
149
-
thrownewError('expected a reply, got an empty stream');
150
-
}
151
-
152
-
constpreview=awaitpostJson(
153
-
'/issues/preview',
200
+
const{ messages, turn }=awaitconverseUntilDraft(
154
201
sessionId,
155
-
turn.messages,
156
-
);
157
-
if(
158
-
preview.status!==200||
159
-
preview.body.status!=='ready'||
160
-
!preview.body.summary
161
-
){
162
-
thrownewError(
163
-
`expected a ready preview with a summary, got ${preview.status}: ${JSON.stringify(preview.body)}`,
'I found a bug in the app: the proposal page crashes with a blank screen whenever I open any proposal on ethereum mainnet. It started today and reproduces every time I click a proposal in the list. My email is llm-smoke@aragon.org.',
203
+
'It happens on every proposal, Chrome on desktop, no console access. Please just file the ticket with what we have.',
0 commit comments