Commit Graph
14171 Commits
Author SHA1 Message Date
Diego ImbertandClaude Fable 5 35a7b2338c Merge branch 'main' into change-d274fbc6
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 21:40:50 +02:00
Diego ImbertandClaude Fable 5 2a56643ccd fix: drop the whole phantom ancestor tail and lock chains while they load
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 21:39:20 +02:00
Diego ImbertandClaude Fable 5 662cc868c9 perf: open ancestor levels concurrently and index children per level
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 21:25:47 +02:00
Diego ImbertandClaude Fable 5 a3a7033c31 chore: vendor the object_store fork and page filesystem levels natively
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 18:29:14 +02:00
GuilhemandClaude Opus 5 9cd6a70f6a fix: sidebar workspace toggle navigates home when already in workspace mode (#10405)
* feat: sidebar workspace toggle navigates home when already in workspace mode

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: fire the toggle home navigation on keyboard activation too

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: one activation per key press and no duplicate history entry from home

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 17:46:26 +02:00
Ruben Fiszelandrubenfiszel 64ec1aa490 chore(main): release 1.775.2 (#10397)
* chore(main): release 1.775.2

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.775.2
2026-07-29 12:12:07 +02:00
Ruben FiszelandClaude Opus 5 b1d26bd268 chore: pin ui_builder to 2471791 (#10402)
Picks up the language-server fix in the in-editor builder
(windmill-labs/windmill-code-ui-builder#26), so .svelte files get
IntelliSense, diagnostics and go-to-definition again. The bundled
extension's language server was dying on startup with

  Cannot read properties of undefined (reading 'useCaseSensitiveFileNames')

Builds and runtime were unaffected — this is editor language support
only, and it predates the rune-module and delegated-event fixes already
pinned here.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 12:11:41 +02:00
Ruben FiszelandClaude Opus 5 9c37b0217c fix(cli): compile runes in .svelte.ts / .svelte.js modules (#10400)
* fix(cli): compile runes in .svelte.ts / .svelte.js modules

The svelte plugin only ran on `/\.svelte$/`, so a rune module like
`lib.svelte.ts` was bundled as plain TypeScript: the types were stripped
and `$state(0)` survived as a call to an undefined global, blowing up at
runtime with "ReferenceError: $state is not defined".

Route those files through `compileModule`. It parses with plain acorn and
chokes on TypeScript, so types come off first via esbuild's transform —
which is what vite-plugin-svelte gets for free by running after Vite's own
esbuild transform.

`wmill app dev` picks this up too; watch mode builds its plugin list with
the same `createFrameworkPlugins`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore: pin ui_builder to 1ffb28e

Picks up the matching rune-module fix in the in-editor builder
(windmill-labs/windmill-code-ui-builder#24), so `.svelte.ts` modules
compile in the editor as well as through the CLI.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(cli): compile raw apps with the app's own svelte compiler

Svelte 5.52.0 moved delegated event handlers off `element.__click` onto a
Symbol-keyed map. A raw app supplies its own Svelte *runtime* via
package.json, but `import("svelte/compiler")` resolves against the CLI,
whose own svelte floats independently — so the two can land on opposite
sides of that change and the app builds, renders, and has every
onclick/oninput silently dead.

Resolve the compiler from the app's node_modules instead, so compiler and
runtime are the same install by construction, and raise the CLI's own
floor past the break for the fallback path.

Also pin ui_builder to 013bf67, which carries the matching fix for the
in-editor builder (windmill-labs/windmill-code-ui-builder#25), and move
the Svelte raw-app template onto the same range. Those two go together:
the new builder rejects a runtime that sits on the far side of the ABI
break from its compiler.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 11:13:16 +02:00
Diego ImbertandClaude Fable 5 af98815e5c docs: correct the wrapper delegation rationale and document the marker token
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 10:38:43 +02:00
Diego ImbertandClaude Fable 5 95417535b3 fix: keep stale folder loads from unlocking rows or skewing the count
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 00:54:05 +02:00
Diego ImbertandClaude Fable 5 35e88e851e fix: harden the forked shallow paging and keep the lockfile churn-free
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 00:40:19 +02:00
Diego ImbertandClaude Fable 5 8cedf31a32 feat: page shallow S3 listings natively via forked object_store
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-29 00:18:19 +02:00
Ruben Fiszelandwindmill-internal-app[bot] 33d28456cc fix: surface the real reason git sync settings saves are rejected (#10398)
* fix: surface the real reason git sync settings saves are rejected

* fix: redact credentials and cover the remaining api error sites

* chore: update ee-repo-ref to 85209cfccb07538ae4748d85b56e61c0bef4f606

This commit updates the EE repository reference after PR #691 was merged in windmill-ee-private.

Previous ee-repo-ref: 01ca990c6a02a745e16f13da972497add0ad7a6c

New ee-repo-ref: 85209cfccb07538ae4748d85b56e61c0bef4f606

Automated by sync-ee-ref workflow.

* fix: drop the unactionable branch advice and the last inline error copy

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-07-28 23:12:28 +02:00
Ruben Fiszel a17ccbdd0d fix: distinguish waiting-on-user from streaming in ai sessions (#10396)
* feat: expand the active fork's family in the workspace menu

* fix: distinguish waiting-on-user from streaming in ai sessions

* fix: honor compact sizing in the waiting-for-input pill

* docs: condense waiting-state comments to the 4-line limit

* fix: detect a blocked tool card sitting behind queued ones

* fix: scan to the turn boundary for a blocked tool card
2026-07-28 22:30:13 +02:00
Ruben Fiszelandrubenfiszel cfb8ca4391 chore(main): release 1.775.1 (#10394)
* chore(main): release 1.775.1

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.775.1
2026-07-28 20:43:07 +02:00
Ruben Fiszel 39dd411481 fix(frontend): add the preprocessor node before the error handler markers (#10395) 2026-07-28 20:37:22 +02:00
GuilhemandClaude Fable 5 d842f765a4 fix(ai): render pending parallel tool calls as faded queued cards (#10208)
* fix(ai): show queued state instead of spinner for pending parallel tool calls

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ai): clear queued tool cards on chat cancel or stream error

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ai): render queued tool calls faded with imperative labels

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ai): keep queued labels past preAction, humanize camelCase names

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* style: drop narrating comment in queuedToolStatus

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(ai): run preAction at tool promotion, dedupe queued-state comments

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 19:34:17 +02:00
Ruben Fiszelandrubenfiszel 0de18dc017 chore(main): release 1.775.0 (#10392)
* chore(main): release 1.775.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.775.0
2026-07-28 18:59:14 +02:00
Ruben Fiszel 7ac2909b30 fix: don't crash the flow editor when a step with an error handler marker is deleted (#10393)
* fix(frontend): don't anchor an error handler marker to a deleted step

* test(frontend): pin that topologicalSort tolerates a missing parent node
2026-07-28 18:59:01 +02:00
Ruben Fiszel bff654596f fix: render the flow editor's error handler node as an inert run marker (#10391)
* fix(frontend): render the error handler as an inert run marker in the flow editor graph

* fix(frontend): dismiss nested error handler markers via a dedicated handler

* docs(frontend): note that error handler markers are keyed by failing step
2026-07-28 18:41:52 +02:00
bd246644c9 feat: add github dark mode variant switchable in user settings (#10002)
* feat: add github dark mode variant switchable in user settings

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: boot the UI Builder iframe into the current theme

Seed the UI Builder iframe URL with the live dark/variant state
(`?dark=&variant=`) so the VS Code workbench boots straight into GitHub
Dark / Nord / Light instead of flashing the dark default until the host's
`setDarkMode` message lands. Read from the <html> classes rather than the
reactive state so the src is computed once at mount — a later theme toggle
still updates the workbench via postMessage and does not reload the iframe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: align github-dark surfaces to GitHub Primer's elevation scale

Snap the invented mid-greys to Primer's real dark canvas scale
(inset=neutral.0, default=neutral.1, muted=neutral.2). Recessed surfaces
now use true inset (#010409) instead of washed-out half-steps that sat in
no-man's-land between inset and the page; raised surfaces align to muted.

- surface-secondary  #0b0e13 → #010409  (true inset)
- surface-input      #0c0f14 → #010409  (true inset)
- surface-disabled   #0b0e13 → #151b23  (muted)
- surface-tertiary   #161b22 → #151b23  (Primer neutral.2)
- component-virtual-node #161b22 → #151b23
- surface-selected   #21262d → #212830  (Primer neutral.3)

surface-sunken (#010409) and surface-primary (#0d1117) already matched
Primer inset/default exactly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: keep github-dark inputs subtle instead of full inset

surface-input at true inset (#010409) made form fields read as recessed as
the sidebar rail — too much contrast against the canvas. Inputs aren't
sunken, so keep the subtle #0c0f14 (a hair below the page) while the
recessed panel surfaces stay at inset.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore: bump UI Builder pin to the github-dark build (76ee616)

windmill-code-ui-builder PR #16 is merged and published to R2, so pin the
artifact to that build. The embedded raw-app editor now renders GitHub Dark
(and honors the `variant` message) natively from the pinned build — no local
swap needed. Reword the variant comment now that the dependency is resolved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: address codex review nits on the github-dark theme

- UserSettings: re-read the dark variant when the settings drawer opens, so a
  change made through one mounted instance (page-local drawer) isn't shown
  stale by another (the always-mounted layout instance).
- PublicApp / OAuth login callback: restore the `github-dark` variant class,
  not just the base `dark` class. These routes bypass the (root) layout, so
  they previously fell back to the default dark palette despite the saved
  preference.
- RawAppEditor: condense the two new theme comments to the durable constraints
  per AGENTS.md (drop narration and the ephemeral artifact-pin history).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: address CI review findings on the github-dark theme

- Move the hand-authored `github-dark` token set out of the Figma-generated
  tokens.json into githubDark.json, merged back in at the two consumers
  (tailwind.config.cjs before the rgb pass, utils.ts) so a Figma re-export of
  tokens.json can no longer drop the set and crash the build.
- Restore the default-dark sidebar divider to #374151 — the PR must leave the
  Default variant unchanged; only the github variant adapts it to border-light.
- Extract the `github-dark` DOM-class read into getAppliedDarkModeVariant() and
  reuse it across RawAppEditor and vscode.ts; drop the redundant `void darkVariant`.
- Override the Monaco popup vars (suggest/hover widgets) in the github variant so
  they match the GitHub palette instead of VS Code's greys.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
2026-07-28 18:34:41 +02:00
Ruben Fiszel 91b8ce581a feat: validate and make explicit the hub project's resource type export (#10388)
* feat: make hub resource type export explicit and validated

* fix: skip resource type validation when the workspace has no type catalog

* fix: snapshot the export opt-in and exclude s3_object unconditionally

* fix: capture the export opt-in at publish click, not after the draft request

* docs: correct the publish-snapshot rationale
2026-07-28 18:30:55 +02:00
Ruben Fiszelandwindmill-internal-app[bot] faa2aaf214 fix: truncate strings on char boundaries to avoid panics on multibyte input (#10390)
* fix: truncate strings on char boundaries to avoid panics on multibyte input

* fix: add borrowed truncate_chars helper and pin ee ref for audit fix

* docs: clarify truncate_with_ellipsis length contract

* chore: update ee-repo-ref to bbfb0de0dc9fa06130a231eb10c64f60238d1bbd

This commit updates the EE repository reference after PR #690 was merged in windmill-ee-private.

Previous ee-repo-ref: de15aeff12daf457711f5b981de691418484535c

New ee-repo-ref: bbfb0de0dc9fa06130a231eb10c64f60238d1bbd

Automated by sync-ee-ref workflow.

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
2026-07-28 18:29:45 +02:00
Ruben Fiszelandrubenfiszel 773a428ad0 chore(main): release 1.774.0 (#10365)
* chore(main): release 1.774.0

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
v1.774.0
2026-07-28 17:43:36 +02:00
Ruben FiszelandClaude Opus 5 3b95c947d4 test(wac): pin the failure record with one corpus both SDKs read (#10385)
* test(wac): pin the failure record with one corpus both SDKs read

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(wac): add the behaviour matrix that verified the failure record

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(wac): record how to exercise an unreleased SDK change

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): guard the whole extra pair, not just its value

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): never rehash an untrusted extra key

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): walk only a real __dict__ when collecting extra

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(wac): name the divergence the corpus cannot pin

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore(wac): state the extra-encoding constraints in four lines

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 16:54:40 +02:00
Ruben FiszelandClaude Opus 5 faf5aead6f ci: run the SDK suites on release (#10386)
* ci: run the python and typescript SDK suites

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* ci: run the SDK suites on release tags only

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore(ci): state the constraint without the incident

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(sdk): claim only what functools.wraps actually restores

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(ci): note the interpreter the suite runs on is not the worker's

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 16:51:47 +02:00
GuilhemandClaude Fable 5 ac970efa16 feat: bulk discard selected drafts on the compare & deploy page (#10372)
* feat(frontend): bulk discard selected drafts on the Compare & Deploy page

Add a destructive "Discard N drafts" button next to "Deploy N drafts" in
draft mode. A single confirmation modal lists draft-only items (permanent
deletions) by path before discarding sequentially with per-row status.

Split the selection gate into isDiscardable (own draft, not deployed this
session, not a data-pipeline bundle) and isDeployable (+ can_write): the
server lets you discard your own draft on a path you can no longer write
to, so each footer button counts its own eligible selection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(frontend): address review findings on bulk draft discard

- invalidate the workspace-drafts resource once per batch instead of once
  per discarded row (discardDraft gains an invalidate opt-out)
- write-gate legacy (ownerless) drafts in isDiscardable + tooltips,
  mirroring the server's discard check
- explain diverging footer counts with a hint when selected drafts are
  discardable but not deployable
- update selection-contract comments left over from the deploy-only gate

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(frontend): cover shared-draft outcome in bulk discard modal + comment reflow

A draft-only item someone else also drafted is neither reverted nor
deleted — only the current user's draft is removed. Say so in the modal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 14:35:44 +02:00
Guilhem c12e7c3431 feat(ai-chat): add get_flow_run_details tool for per-step flow run results (#10374)
* feat(ai-chat): add get_flow_run_details tool for per-step flow run results

* fix(ai-chat): report flow step retries as attempts, not loop iterations

* fix(ai-chat): scope-tag flow tree descendants, cap entries, fix labels

* fix(ai-chat): cap rows pre-join, signal tag scoping, code-point slicing

* fix(ai-chat): authoritative sibling order + pinned flow_version lookup

* fix(ai-chat): decorrelate drill ordinal join, cap step diagnostics
2026-07-28 14:35:24 +02:00
GuilhemandClaude Opus 5 5feec9b4cd fix(ai-chat): make hub script paths readable from the global chat (#10381)
* fix(ai-chat): make hub script paths readable from the global chat

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(ai-evals): match hub fixtures on whole words, not substrings

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:35:01 +02:00
Alexander PetricandClaude Fable 5 c4e75683a8 fix: mark Setup URL as required in self-managed GitHub App instructions (#10380)
* fix: mark Setup URL as required in self-managed GitHub App instructions

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WTZ5UBBLNh2rkgfNzUmCWs

* fix: clarify workspace assignments table only renders once app is configured

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WTZ5UBBLNh2rkgfNzUmCWs

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 14:34:29 +02:00
Ruben FiszelandClaude Opus 5 2a2ef41152 fix: home kind filter no longer resets a fork or reloads the page (#10384)
* fix: source setQuery's query string from the address bar, not page.url

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: stop treating site-wide cross-origin isolation as leaving the editor

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:32:44 +02:00
Ruben FiszelandClaude Opus 5 fbf9f04e10 fix: surface the real postgres error when data table migrations fail (#10371)
* fix: surface the real postgres error when data table migrations fail

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: address review nits on the data table migration error fix

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: name the exact grant a data table migration needs

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: quote both identifiers in the data table grant hint

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* feat: add a data table connection and privilege check to workspace settings

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: report data table privileges from the capability fields, not the grant list

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: read grant targets from the server and drop the public schema guess

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: render the search_path suggestion server-side and pin the granted database

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: key the connection check on request identity, not the data table name

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: declare the data table check schema field nullable and required

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 14:29:06 +02:00
Diego ImbertandClaude Fable 5 71ba9fdd21 fix: show synthesized ancestors and leave the spinner to the current load
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 13:40:45 +02:00
Diego Imbert e8a081ccf4 Merge branch 'main' into change-d274fbc6 2026-07-28 13:30:52 +02:00
Diego ImbertandClaude Fable 5 28e9fab612 fix: place ancestor folders that the level has not paged to yet
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 13:15:43 +02:00
Ruben FiszelandClaude Opus 5 aeaea57ca1 fix(wac): one failure record for tasks and steps, in every round (#10368)
* fix(wac): hand a caught task and step failure the same shape in every round

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* refactor(wac): decide the failure record once, server-side

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): leave a legacy SDK's failure marker untouched, and ship wacError to jsr

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): carry a step's custom error fields, and bound the stack in bytes

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): keep a step's extra fields serializable and bounded

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): record a non-Error throw the way a task records it

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): guard the last unguarded throw site in the step marker

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): make failure reporting non-throwing on both clients

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): take the step traceback the way the executor takes it

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): contain the reads that happen before a failure is checkpointed

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): fall back to the checkpointed marker, not the live one

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): keep non-finite fields and hostile proxies out of the checkpoint path

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(wac): keep the snapshot that passed the serialization probe

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* chore(wac): keep the failure-record module's surface to what is used

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 13:15:24 +02:00
Ruben FiszelandClaude Opus 5 8d684c0b23 fix(ai-agent): keep tool description through flow deployment (#10373)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 13:09:30 +02:00
Ruben FiszelandClaude Opus 5 a0798a3d82 refactor(flows): make the flow-value round-trip preserve display-only fields in one place (#10382)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 13:09:08 +02:00
Diego ImbertandClaude Fable 5 21de5c20cd fix: guard folder expansion against a reload landing mid-fetch
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 12:59:00 +02:00
Diego ImbertandClaude Fable 5 54fabefc20 docs: subfolders now page with the files in shallow listings
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 12:52:46 +02:00
Diego Imbert 2acb03b5cd Merge branch 'main' into change-d274fbc6 2026-07-28 12:42:09 +02:00
Ruben Fiszel ecde94567c fix: make same worker mutually exclusive with retries and sleeps in the flow editor (#10379)
* fix(frontend): make same worker mutually exclusive with retries and sleeps

* fix(frontend): cover failure/preprocessor modules and skip agent tools
2026-07-28 12:34:36 +02:00
Diego ImbertandClaude Fable 5 172e17f7b4 chore: bump ee ref for shallow listing page-boundary fix
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 12:29:21 +02:00
Ruben Fiszel 5e52346242 fix: surface postgres publication errors as 400 instead of 500 (#10376) 2026-07-28 12:25:08 +02:00
Ruben Fiszel 1b6b2aa859 fix(datatable): provision the replication user on managed postgres (#10375)
* fix(datatable): provision the replication user on managed postgres

* fix(datatable): serialize replication user provisioning and sync config schema

* fix(datatable): keep replication cleanup best-effort and self-heal a null password
2026-07-28 12:17:09 +02:00
Diego ImbertandClaude Fable 5 8da23fda22 fix: discard stale prefix searches and guard load-more reveals
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 12:10:33 +02:00
Diego ImbertandClaude Fable 5 a9b194bba8 fix: explain the folder-prefix search empty state
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 11:50:16 +02:00
Diego ImbertandClaude Fable 5 7b11ff6c7f fix: drop stale listings and nameless folder-marker rows in the S3 tree
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 11:29:53 +02:00
Diego ImbertandClaude Fable 5 17650de724 feat: add per-folder load more to the S3 explorer tree
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 11:18:34 +02:00
Diego ImbertandClaude Fable 5 839670bb7c feat: browse S3 explorer folder-by-folder instead of a flat paged list
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HeHeGLWDuu62fxjBZA15P
2026-07-28 11:09:12 +02:00