Skip to content

v0.3.39

Choose a tag to compare

@github-actions github-actions released this 02 Jul 12:40
· 1731 commits to main since this release

FurtherRef changes

  • 3c9db3e5c Merge upstream/main into main (upstream v0.3.34+4 -> v0.3.35+3)

This release syncs the fork to upstream HEAD a06fc2734, 22 commits past the previous fork release (v0.3.38, which landed on upstream 8b9caded7). The range covers all of v0.3.35 (19 commits) plus 3 commits past the v0.3.35 tag that are not yet part of a tagged upstream release. There is no standalone fork patch this cycle; the fork-specific work was six merge conflicts, none of which lost fork behavior.

Two of the conflicts were both sides independently adding an import to the same block — kept both in packages/core/api/client.ts (fork's OfficeConfig alongside upstream's CreateFeedbackResponse) and server/internal/storage/s3.go (fork's net/netip, needed by the fork-original SSRF-guarding publicEndpointHost, alongside upstream's net/url).

Three conflicts were upstream's MUL-3903 "Extract shared issue surfaces" rewrite (multica-ai#4774), which replaces the hand-rolled view-mode/filter/query plumbing in issues-page.tsx, my-issues-page.tsx, and project-detail.tsx with a shared <IssueSurface> component. The fork's only changes to those regions since the last sync were trivial reformats inside the code upstream deleted (confirmed via diff against merge-base before resolving), so all three conflicts took upstream's side outright. The same refactor also touched use-issue-actions.ts, where it routes issue updates through an optional surfaceActions context instead of calling updateIssue.mutate directly — folded that into the fork's runUpdate helper so the fork-original status-confirmation gate (requiresIssueStatusConfirmation, guarding destructive status changes) still runs first and then delegates to the surfaceActions-aware update.

The last conflict was upstream's "time out repo cache git commands" fix (101cc29e2), which converts two raw exec.Command(...).Run() calls in repocache/cache.go to the timeout-wrapped runGit() helper already used elsewhere in that function. The fork never touched those lines, so it took upstream's side.

New migration applied cleanly: 133_github_installation_multi_workspace.

Verified in CI (backend, frontend, both installers, changes-filter, plus Mobile Verify) and the full local suite — pnpm typecheck (forced, 7 packages), pnpm test (all packages, 1774/1774 in views), pnpm lint (0 errors), no reserved-slugs drift, go build/vet (clean), and go test -race ./... against a migrated database — every failure there is confined to pkg/agent spawning real agent CLIs absent in this sandbox (a known environmental gap), with every other package including internal/handler and internal/daemon green.

Upstream (unreleased, post-v0.3.35) changelog

3 commits on top of the v0.3.35 tag, not yet part of a tagged upstream release.

  • 6b7014657 test(rollup): serialise shared-singleton rollup tests across packages (MUL-3980) (multica-ai#4854)
  • 84a585336 fix(desktop): restore correct filename in save dialog for attachment downloads (multica-ai#4296)
  • a06fc2734 fix(web): redirect legacy squads and usage routes (multica-ai#4833)

Upstream v0.3.35 changelog

  • 88377c1b1 fix(slack): recover attachment/blocks text for empty-Text chat messages (MUL-3931) (multica-ai#4805)
  • 5ed381a9d Fix comment attachment URL resolution (multica-ai#4816)
  • 8b529efc0 Fix recovered Antigravity transcript messages (multica-ai#4814)
  • c3a33fff4 fix(markdown): render inline data-URI images (MUL-3961) (multica-ai#4832)
  • ade6b34e5 MUL-3903: Extract shared issue surfaces (multica-ai#4774)
  • ac75a0df7 fix(attachments): align text preview whitelist (multica-ai#4834)
  • 078f2aa65 fix(handler): keep runtime pending redis keys in one slot
  • da624a883 feat: add configurable S3 path-style addressing (multica-ai#4739)
  • 94778449e fix(docker): derive web pnpm version from packageManager (multica-ai#4815)
  • 101cc29e2 fix(daemon): time out repo cache git commands
  • 0c4c3ff03 fix(cli): prevent daemon-managed CLI from silently using user tokens (MUL-3922)
  • c328fdbcd fix(issues): wake parent squad leader on same-squad/shared-leader child-done (MUL-3969) (multica-ai#4843)
  • c4b116ec3 feat(views): expose add-label entry in create-issue dialog (multica-ai#4846)
  • 2e8578acb fix(chat): stop remounting the live timeline on every streamed task message (MUL-3960) (multica-ai#4845)
  • c2903365a fix(editor): keep the comment-box caret in the ordered list after switching issues (MUL-3973) (multica-ai#4813)
  • 03828015c fix(feedback): validate response and pass error kind (multica-ai#4633)
  • 2cf529781 Revert "fix(editor): keep the comment-box caret in the ordered list after switching issues (MUL-3973) (multica-ai#4813)" (multica-ai#4851)
  • e4994cd43 fix(github): allow one installation to bind multiple workspaces (multica-ai#4855)
  • 4416313f8 docs(changelog): add v0.3.35 entry for the 2026-07-02 release (MUL-3984) (multica-ai#4856)