Repository navigation
fix(api): release-audit follow-ups for the agent API work - #9910
Conversation
A message that already leads with its field label no longer repeats it after the location prefix, and the CLI restates the prefix as the flag the caller typed instead of rewriting it to query.--flag.
The id in error bodies is the request id that x-request-id carries and logs store as requestId; traceId already means the OTel trace id in logs, so a search by the published value found nothing.
Only null values are dropped, every sub-block hidden from agents is dropped (some are real configuration), and blocks whose parent container is gone are left out, so point readers at Get workflow state for the full configuration.
Adds an integration suite for listWorkspaceLiveSchedulesPage: it returns the rows the per-workflow live list reports, leaves out archived, undeployed and other-workspace workflows, and pages through createdAt ties without repeats or gaps. sortBy=createdAt now says that each deploy creates new schedule rows.
sim login --expires-in without --method failed on servers that offer OAuth, because OAuth was chosen and then refused the flag; a lifetime now selects the API-key handoff. A refused handoff key no longer says nothing was stored: it already exists on the account, so the CLI points at how to revoke it.
RE2-based validators (Go, Rust, many gateways) reject lookaheads, so the OpenAPI pattern for logoUrl could not be compiled there. The rewrite accepts and refuses exactly the same values.
The poll contract strips unknown keys and the route never reads them, so sending access and expiresInDays in the body proved nothing. The test keeps checking that the approval's access and lifetime reach the mint.
applyWorkflowOperations now hands the persistence primitive a reader, which skipped its pre-lock withheld-block check, so a refused batch took the row lock and re-read the graph first. The use case checks the graph it composed before writing. A failed re-read under the lock is now an internal error instead of a 400 saying the workflow has no state.
…ostgres Holds the workflow row lock to force each interleaving: an unchanged workflow with containers and a migrated legacy block commits, a write that lands after the base read is refused as a conflict, and of two concurrent applies one commits and the other is refused with nothing lost.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
[Medium impact] The PR appears safe to merge; no new actionable issues remain. SummaryThis PR tightens API errors, workflow edits, CLI login, and their documentation.
Reviews (3) · Last reviewed commit: "fix(cli): probe the endpoint before an -..." · Reviewed by Greptile |
There was a problem hiding this comment.
All reported issues were addressed across 32 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
The poll response now carries the minted key's name (an additive, optional field), so the CLI tells the caller exactly which key in Settings → API keys to revoke, falling back to the key id for an older server. Restores the route context argument the trimmed poll test dropped.
The applies and the lock-wait poll started inside the lock holder's transaction callback, so the transaction tripwire refused them. They now leave that context, the applies run in a permission-group scope as routes do, and an apply that settles early is reported without awaiting the ones queued on the held lock.
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 35 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
A second FOR UPDATE waiter queues on the first waiter's tuple lock, so pg_blocking_pids names that waiter rather than the holder; the barrier now walks the chain.
--expires-in without --method chose the handoff before the reachability probe, so a mistyped endpoint printed a pairing code and polled instead of failing fast. The probe now runs first. A refused key from a server that does not report its name is described by the name pattern and time it was made.
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Follow-ups from independent pre-release audits of #9902, #9904, and #9905 (all on staging, unreleased).
Summary
requestId(the same id as thex-request-idheader; quote it to support) instead oftraceId, which logs already use for the OTel trace id. Unreleased, so renaming now is safe.query.limit: ..., no doubled label); the CLI shows the flag instead (--sort-by: ...).CONFLICT409 is documented.sim login --expires-inwithout--methodnow picks the API-key flow instead of failing on OAuth servers; when the CLI refuses a mismatched key, the error names the key that was created and how to revoke it instead of saying nothing was stored.logoUrlis published without a regex lookahead so RE2-based validators accept it (same accepted values).sortBy=createdAt(rows are recreated per deploy); v2 conventions skill updated; removed a test half that could not fail.Test plan