5.0 KiB
5.0 KiB
Task: Fix MakeLore failed run projection and agent default
Identity
- Task ID: 20260914-makelore-ppt-failure-7c4a
- Mode: Feature
- Branch: codex/20260914-makelore-ppt-failure-7c4a-makelore-ppt-failure
- Worktree: D:\Datas\OthersProjects.codex-worktrees\makelore\20260914-makelore-ppt-failure-7c4a
- Base commit:
9044f7dd8c - Owner: codex-ppt-failure
- Status: Ready for Integration
Scope
- Change the MakeLore cloud-agent client default
max_execution_stepsfrom 40 to 300 for newly materialized configuration defaults. - Project the existing authoritative WeChat conversation run status and error visibly in the selected conversation, including historical/closed sessions and queued-only state.
- Add focused renderer/unit and consumer-seam Electron E2E regression coverage for failed runs and the required status labels.
- Keep the implementation inside MakeLore; do not change Yuxi, AgentBus, Works Square, backend contracts, billing, privacy, retry/resume controls, or published version data.
Intent And Constraints
- Confirmed facts:
shared/cloud-agents.tsdefines the fallback configuration withmax_execution_steps: 40;electron/services/cloud-agent-operations.tsalready projectsCloudRun.statusand boundederror.type/message;CloudChannelConversationscurrently prioritizes the closed-session copy over run status and does not renderrun.error. - Decision: use 300 only when the configuration field is absent. Preserve explicit saved 40/custom values and published versions because Main's configuration projection overlays present response fields.
- Decision: keep partial assistant messages, but render a prominent authoritative run-status/error block before them so partial output cannot conceal a terminal failure.
- Confirmed contract: the existing channel-conversation response includes
run.status,run.output,run.error.type/message, andqueued_requests[].status; Main'sprojectConversationpreserves those bounded fields. Yuxi now maps the graph execution limit toexecution_step_limitwith a user-facing explanation, and its thread history already merges run/messages/queued requests. No MakeLore API change is required. - No deployment, push, or merge is part of this task; hold the reversible commit until the independent review completes. No paid retry, automatic resume, or new framework is included.
Outcome
- Completed implementation in the MakeLore client. New configuration defaults materialize at 300 execution steps while explicit saved values remain unchanged. The selected WeChat conversation now shows the authoritative run status for active, terminal, closed, and queued-only states, and shows the authoritative error before retaining any partial assistant transcript. The settings help explains that execution steps count model calls, tools, graph nodes, and middleware steps. No billing, privacy, scanner identity, published-version, retry, or resume behavior changed.
- Independent review completed with no product-executable issues and approval to commit. The reviewer confirmed the 300 default, preservation of explicit 40/custom limits and published versions, failed-run error with partial output, and queued-status precedence.
Verification
- Before the fix, the component had no status/error regression assertion; closed sessions rendered only the historical-session copy and
run.errorwas absent from the view. The 42 regression tests were run only against the fixed implementation; the old implementation was not executed to produce a red test. The baseline was verified from the pre-change source. The first focused test attempt was blocked by an uninstalled workspace (vitest: command not found), thenpnpm install --frozen-lockfilerestored the pinned dependencies. - Passing:
pnpm exec vitest run tests/unit/cloud-channel-conversations.test.tsx tests/unit/cloud-agents-main.test.ts --maxWorkers=1(42 tests);pnpm run typecheck;pnpm exec eslint shared/cloud-agents.ts src/pages/CloudAgents/CloudChannelConversations.tsx src/pages/CloudAgents/ConfigurationFields.tsx tests/unit/cloud-agents-main.test.ts tests/unit/cloud-channel-conversations.test.tsx tests/e2e/cloud-agent-channels.spec.ts;pnpm run lint:check;pnpm run build:vite;pnpm run test:e2e -- tests/e2e/cloud-agent-channels.spec.ts(1 test).git diff --checkalso passed. Build output contained only existing Browserslist, chunk-size, and dynamic-import warnings. - Review limitation: the production WeChat E2E was not executed. The available Electron E2E and Main projection regression cover the client consumer seam; Yuxi's independent real-chain validation supplied the upstream contract confirmation.
Follow-ups
- No implementation follow-up remains before integration. Keep the production WeChat E2E limitation visible when promoting this change.
Promotion Candidates
- None. The default and status/error behavior are client changes covered by this task; no canonical project-memory or backend contract promotion is needed.
Status
Ready for Integration