From 486711a8fa9309c9c4ec4fd3733235d5c6645ec5 Mon Sep 17 00:00:00 2001 From: Xun Lu Date: Fri, 30 Oct 2026 23:36:06 +0800 Subject: [PATCH 1/3] ci: check rust-preview pull requests and the workbench UI sources Generated-by: Claude Code --- .github/workflows/ci.yml | 13 +++++++------ .github/workflows/computer-use.yml | 2 +- justfile | 3 ++- plugins/agent/conversations/ui/Conversation.tsx | 10 +++++----- plugins/agent/conversations/ui/SessionSurface.tsx | 2 +- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96d5cd5393d..f43b54676ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,9 +19,9 @@ name: CI on: pull_request: - branches: [main] + branches: [main, rust-preview] push: - branches: [main] + branches: [main, rust-preview] workflow_dispatch: permissions: @@ -38,10 +38,11 @@ jobs: timeout-minutes: 180 env: MBX_CACHE_EXPORT_GROUP: ci-${{ github.run_id }}-${{ github.run_attempt }}-test - MBX_GC_AUTO: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && '0' || '1' }} + MBX_GC_AUTO: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/rust-preview') && '0' || '1' }} MBX_TARGET_VIEWS: "0" # Linked outputs already live in target; retain cache copies only for export. - MBX_CACHE_LINKS: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && '1' || '0' }} + # Pushes to either long-lived branch save the cache their pull requests restore. + MBX_CACHE_LINKS: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/rust-preview') && '1' || '0' }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: @@ -170,10 +171,10 @@ jobs: target/debug/maka desktop --version target/debug/maka-desktop-shell --version - name: Export compiled Rust cache - if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.mbx-cache.outputs.cache-hit != 'true' + if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/rust-preview') && steps.mbx-cache.outputs.cache-hit != 'true' run: mbx cache export --group "$MBX_CACHE_EXPORT_GROUP" --format directory "$RUNNER_TEMP/mbx-cache" - name: Save compiled Rust cache - if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.mbx-cache.outputs.cache-hit != 'true' + if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/rust-preview') && steps.mbx-cache.outputs.cache-hit != 'true' uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ${{ runner.temp }}/mbx-cache diff --git a/.github/workflows/computer-use.yml b/.github/workflows/computer-use.yml index 2bd5902028b..7b3781f7a0f 100644 --- a/.github/workflows/computer-use.yml +++ b/.github/workflows/computer-use.yml @@ -19,7 +19,7 @@ name: Computer Use on: pull_request: - branches: [main] + branches: [main, rust-preview] paths: - .github/workflows/computer-use.yml - Cargo.toml diff --git a/justfile b/justfile index 58a9fa3e988..0f072527241 100644 --- a/justfile +++ b/justfile @@ -63,12 +63,13 @@ lint: setup cargo clippy --config 'build.warnings="deny"' --locked --workspace --all-targets node node_modules/@biomejs/biome/bin/biome lint . -# Verify generated contracts and TypeScript consumers. +# Verify generated contracts, TypeScript consumers and the workbench UI sources. [group('Checks')] typecheck: setup npm --workspace @maka-agent/plugin-sdk run schema:check npm --workspace @maka-agent/plugin-sdk run typecheck npm --workspace @maka-agent/product run typecheck + dir="$(mktemp -d)/ui-types" && cargo run --locked -q -p maka-workbench --example ui_types -- "$dir" && node node_modules/typescript/bin/tsc -p "$dir/tsconfig.json" # Run Rust behavior tests; pass nextest filters after the recipe name. [group('Checks')] diff --git a/plugins/agent/conversations/ui/Conversation.tsx b/plugins/agent/conversations/ui/Conversation.tsx index 9bfa56f3ace..d55af3388d1 100644 --- a/plugins/agent/conversations/ui/Conversation.tsx +++ b/plugins/agent/conversations/ui/Conversation.tsx @@ -2684,11 +2684,11 @@ export function Conversation(props: ConversationProps) { return ( { - const tool = latestToolActivity( - toolActivity(), - invocation(), - runTurn(), - ); + const turn = runTurn(); + const tool = + turn === null + ? undefined + : latestToolActivity(toolActivity(), invocation(), turn); return tool ? `${tool.name}` : ''; }} /> diff --git a/plugins/agent/conversations/ui/SessionSurface.tsx b/plugins/agent/conversations/ui/SessionSurface.tsx index 58f29adc7a4..ecd5c9c6d09 100644 --- a/plugins/agent/conversations/ui/SessionSurface.tsx +++ b/plugins/agent/conversations/ui/SessionSurface.tsx @@ -1421,7 +1421,7 @@ export function createConversationUi( create, newConversation: (sessionId) => invokeCommand({ id: 'new', sessionId }), openBot: (sessionId) => invokeCommand({ id: 'bot', sessionId }), - botSession, + botSession: () => botSession() ?? null, settings: (sessionId) => invokeCommand({ id: 'settings', sessionId }), search: (sessionId) => invokeCommand({ id: 'sessions', sessionId }), canOpenBeside: () => !!shell()?.openBeside, From faab12f991cd1117459cc1a9dd2c3cf2cd4539c5 Mon Sep 17 00:00:00 2001 From: Xun Lu Date: Sat, 31 Oct 2026 12:19:12 +0800 Subject: [PATCH 2/3] chore(cli): refresh notices for current rust-preview sources Generated-by: Claude Code --- products/maka/cli/notices.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/products/maka/cli/notices.json b/products/maka/cli/notices.json index 2c8b134e85d..b021e57572a 100644 --- a/products/maka/cli/notices.json +++ b/products/maka/cli/notices.json @@ -4,11 +4,11 @@ "Cargo.toml": "9c58d4f2ef93b548e6c02de8950270a9da42bcfea000ab262a78985e75e672e7", "package-lock.json": "863e20d94f46507befd14d7abe94982bb110dff3efaa13b9d1c3b60333f8d64a", "package.json": "a513ba49c73a1cd6d8060d9a4f2edb47f5286469553cf3b3f4959b9ceb64fa58", - "packages/plugin-sdk/src/composer-view.ts": "9359badca97b4db33ffb906a3633f9ab0bf542d07c9c5f7ffc505e76bd217a0c", - "packages/plugin-sdk/src/configurations.ts": "6c1693e470e93a688890f2354b630758f9eb5c782399278b8d94d12d446c7f83", - "packages/plugin-sdk/src/contracts.ts": "875706c09941abbe93e88bdc0688dcdc2093aea00da2413d711378a2548090f6", - "packages/plugin-sdk/src/generated/methods.ts": "07f192144c727eb132a0c5bf0a6506fe435ab45bf7cb5fdb4f578ae5a5c44b0d", - "packages/plugin-sdk/src/generated/runtime.ts": "8b1189af19e7f04c03723f261b81eaccfb213be9b00940a31aba3507012b95b0", + "packages/plugin-sdk/src/composer-view.ts": "b0cf8a640d6b06dc30b071a477069a4860d7e12643024932d3d606f047815469", + "packages/plugin-sdk/src/configurations.ts": "5cd4b679d786a4766f97460c8fbe070a92415b5210561344c71de4f61c471f5e", + "packages/plugin-sdk/src/contracts.ts": "0c3bd884ff765f50b7e5c4efa1268e2c1907dc3c44ee3693ff8c9771cedcd133", + "packages/plugin-sdk/src/generated/methods.ts": "bfd8a5620e074c04271cdbe3e0d8f2b729c0435be48dbf1451d717756ba4201b", + "packages/plugin-sdk/src/generated/runtime.ts": "9508dc5cda141731e27eacaeaec3a268e3dd0617b6804b33ce5c3142678b1f0c", "packages/plugin-sdk/src/index.ts": "813f3f63b2bc47a4ce3fc9e1deb9fcad2f51dd13a26b37eb1341202e0804dc81", "packages/plugin-sdk/src/native.ts": "6a354ce1068d3eb288ebaf4e3f0e4a2ef00479690e895e53fa4be3f1789fb620", "packages/plugin-sdk/src/workbench-views.ts": "946644214bd2853f7a820c647953660a19dc4c1e7e63596ac68a8483f1ce642f", @@ -18,7 +18,7 @@ "platform/background-health/Cargo.toml": "41e89dc7e43adf066306b03b3083cbd4163a5550f39d5be6669463d3c16c53a5", "platform/capabilities/Cargo.toml": "9b5407113c0595744e1da903e41171f6311be1a543309fe35cd977c3c62041d7", "platform/code-runtime/Cargo.toml": "30a8e555effeaa063b11d255d60d6f858d53e3bd950e2f162382324ef0a7cc20", - "platform/computer-use/Cargo.toml": "a98ddcf5a438f3a5b9489be024351d47426676fdafb544f9f067ffc7c211dc4d", + "platform/computer-use/Cargo.toml": "425a86d8101224fe98f21a93e6607fea5c8a876ea7bfa7f00c45be85e922b527", "platform/computer-use/THIRD_PARTY_NOTICES": "8b25853c9fe8f668531e01e69c6c803e511b7beac5b642f52b4fdf545bfa5dea", "platform/event-log/Cargo.toml": "e8d149e2fee903a4fd155931cd3191f986416797c4e6ddf60be4e556583e2e14", "platform/host-js/Cargo.toml": "881688e22e1325226dc54c1d94ad370fef2b4ce68fbc0c61b3574fbbae29541f", @@ -45,7 +45,7 @@ "plugins/agent/composer/package.ts": "4ac0929d7ea8fbcdff27bf13c59ffb2d9373f1bb066fe7cdb09fcc1504df1c21", "plugins/agent/composer/ui/composerCompletionSyntax.ts": "0a9252770f4ff5dcf5ee1823ddf86a1a93a462591d42b1c60b7f43b2546bebdc", "plugins/agent/composer/ui/composerPaste.ts": "1de35e799c82659a2da5278300c359bf1dd28458dcbb7450d2b87439f2b3fba6", - "plugins/agent/conversations/package.ts": "b82d1d0221d0202f71e3a154032f583fdfe63ef56c31a7226c5aca4edcd7d798", + "plugins/agent/conversations/package.ts": "5dfd4581b71d9e8b60a79ee3405f7cbb986428b4d5cfdb46612104617b242431", "plugins/agent/engine/Cargo.toml": "e396e52630904fe4351d43efb97637afc36d490b7778524bbbff1d1b502fd858", "plugins/agent/facts/Cargo.toml": "a74555b8eae72829b0692c7bca74c7085a9e6bcd128ade513d8a4a4409aef247", "plugins/agent/goal/Cargo.toml": "0e7b81aaa8b60b884a0f64fb586c03f7ecbdf1dc426d2d731ce8f80ba61cf9eb", @@ -115,7 +115,7 @@ "products/maka/bundle/package.json": "97af69b3a330f8ad0ab9959cbb9bc0663002c490ff6ba2cf35c52121585cb37a", "products/maka/bundle/scripts/build.mjs": "15476546ccd427c4419c968ec371f27b7c7f358814bb9e6aba06c093df1b4d4c", "products/maka/bundle/src/composition.ts": "785c717bec821127bc0c23da9c3b7d9da2fa722e9a665ce841511d17fe6671f5", - "products/maka/bundle/src/installation.ts": "b0e05169edba8d736fe822b6cc0910ecbb7d55d4cc1a5f4ac22297a94aa4ac2d", + "products/maka/bundle/src/installation.ts": "6bec18c13c51aa3ad9a2107297aa7e87ecc4f1e80dded8474c938608535a4832", "products/maka/cli/Cargo.toml": "772526a5e914212c2dfd03edfd30f3c04f2a60d2a76d168863dea33300232fd4", "products/maka/cli/build/main.rs": "446a3f9fb976bdf8ee1f0f21f2a5dfce0c0854b32f1a1c0294143cb654171e7f", "products/maka/cli/build/product.rs": "0ff203a6c9b04f97ee75a3ac55af384865fe3e74d5c169d5a022a9de8527584d", From 1ac44502afc4162ddfa217cd67c8dc5e76917ee2 Mon Sep 17 00:00:00 2001 From: M4n5ter Date: Sat, 31 Oct 2026 12:50:24 +0800 Subject: [PATCH 3/3] fix(ci): reuse current workbench nullable contracts Remove redundant UI guards now that the shared contracts accept nullable values. The complete just typecheck chain passes against current rust-preview. Generated-by: OpenAI Codex --- plugins/agent/conversations/ui/Conversation.tsx | 10 +++++----- plugins/agent/conversations/ui/SessionSurface.tsx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/agent/conversations/ui/Conversation.tsx b/plugins/agent/conversations/ui/Conversation.tsx index c65032bf363..1aea8f70759 100644 --- a/plugins/agent/conversations/ui/Conversation.tsx +++ b/plugins/agent/conversations/ui/Conversation.tsx @@ -2711,11 +2711,11 @@ export function Conversation(props: ConversationProps) { return ( { - const turn = runTurn(); - const tool = - turn === null - ? undefined - : latestToolActivity(toolActivity(), invocation(), turn); + const tool = latestToolActivity( + toolActivity(), + invocation(), + runTurn(), + ); return tool ? `${tool.name}` : ''; }} /> diff --git a/plugins/agent/conversations/ui/SessionSurface.tsx b/plugins/agent/conversations/ui/SessionSurface.tsx index 49ee7ac389d..bb846caca61 100644 --- a/plugins/agent/conversations/ui/SessionSurface.tsx +++ b/plugins/agent/conversations/ui/SessionSurface.tsx @@ -1420,7 +1420,7 @@ export function createConversationUi( create, newConversation: (sessionId) => invokeCommand({ id: 'new', sessionId }), openBot: (sessionId) => invokeCommand({ id: 'bot', sessionId }), - botSession: () => botSession() ?? null, + botSession, settings: (sessionId) => invokeCommand({ id: 'settings', sessionId }), search: (sessionId) => invokeCommand({ id: 'sessions', sessionId }), canOpenBeside: () => !!shell()?.openBeside,