docs: integrate Bash tool bridge fix
This commit is contained in:
@@ -1,84 +0,0 @@
|
||||
# Task: Fix Bash tool execution bridge
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260902-fix-bash-tool-bridge-9c4e7a12
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260902-fix-bash-tool-bridge-9c4e7a12-fix-bash-tool-bridge
|
||||
- Worktree: /Users/inmanx/Documents/makelore-fix-bash-tool-bridge-9c4e7a12
|
||||
- Base commit: 6073bd6f4ce269b067b13e1eed0371b38dc2c054
|
||||
- Owner: codex
|
||||
- Status: Completed
|
||||
|
||||
## Scope
|
||||
|
||||
- Reproduce and fix the Makelore-managed Pi tool-batch deadlock that delays
|
||||
parallel Bash calls until the five-minute HTTP idle timeout.
|
||||
- Preserve project-scoped write-lease isolation while making Bash/edit/write
|
||||
tools execute sequentially inside one assistant tool batch.
|
||||
- Add real Agent Server coverage for two Bash calls, including a command-level
|
||||
timeout, and verify the same resource path used by packaged builds.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Keep Pi `0.84.2` as the sole runtime and keep Renderer isolated from Pi wire.
|
||||
- Do not replay an accepted mutation or weaken the cross-Conversation/project
|
||||
write lease; only remove the same-batch pre-execution self-deadlock.
|
||||
- Retain parallel execution for batches containing only read-only tools where
|
||||
Pi supports it.
|
||||
- Treat packaging as a verification path, not as a substitute for the source
|
||||
correction.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Reproduced the stall with the real Pi Agent Server process. Pi `0.84.2`
|
||||
prepares every tool in a parallel batch before it executes any of them, while
|
||||
Makelore acquires the project write lease in `tool_call` and releases it in
|
||||
`tool_result`. Two Bash calls in one assistant response therefore self-deadlocked:
|
||||
the first held the lease without starting and the second waited for that lease.
|
||||
- Confirmed that the apparent five-minute Bash hang came from the Agent Server
|
||||
HTTP idle timeout around the managed-extension request, not from a missing
|
||||
shell dependency or the Bash command timeout. Packaging alone would retain the
|
||||
same behavior because it ships this Agent Server resource and extension bundle.
|
||||
- Marked built-in `bash`, `edit`, and `write` tools as sequential whenever an
|
||||
Agent thread is rebound. Marked dynamically declared product tools that require
|
||||
the same project write lease as sequential in the generated Makelore extension.
|
||||
Read-only tool batches keep Pi's parallel behavior.
|
||||
- Advanced the managed extension artifact from v4 to v5 and synchronized the
|
||||
release proof and worker-opening expectations.
|
||||
- Added a real-process regression that emits two Bash calls in one assistant
|
||||
response. The first exercises its explicit command timeout and the second must
|
||||
still run successfully without waiting for the HTTP idle timeout.
|
||||
|
||||
## Verification
|
||||
|
||||
- Pre-fix regression: the new real-process test failed with the second Bash result
|
||||
equal to `fetch failed`, reproducing the production failure under a 250 ms HTTP
|
||||
idle timeout.
|
||||
- Focused regression: `pnpm exec vitest run
|
||||
tests/unit/pi-agent-server-process-real.test.ts
|
||||
tests/unit/pi-extension-bundle.test.ts
|
||||
tests/unit/pi-managed-worker-opener.test.ts --maxWorkers=2` passed 3 files and
|
||||
9 tests.
|
||||
- `pnpm run typecheck` passed.
|
||||
- `pnpm test` passed 213 files and 1,733 tests; 3 tests were skipped.
|
||||
- `pnpm run lint:check` passed with 0 errors and 5 existing warnings in
|
||||
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
||||
- `pnpm run build:vite` passed for Renderer, Electron Main, Preload, and the
|
||||
release utility worker, proving the fixed Agent Server resource is included by
|
||||
the production build path.
|
||||
- `git diff --check` passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Integrate this feature branch into local `main`, update the canonical current
|
||||
state/README, restart Makelore, and use the real-process regression as the
|
||||
non-destructive smoke check instead of replaying the user's accepted turn.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Promote the write-lease batch rule to README/current state: write-leased Pi
|
||||
tools are serialized within one assistant batch, while read-only tools may
|
||||
remain parallel.
|
||||
- Record the full-suite, production-build, and real-process regression results in
|
||||
the evidence index during integration.
|
||||
@@ -0,0 +1,70 @@
|
||||
# Task: Integrate Bash tool bridge fix
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260902-integrate-bash-tool-bridge-e81a5c6d
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: /Users/inmanx/Documents/makelore
|
||||
- Base commit: 6073bd6f4ce269b067b13e1eed0371b38dc2c054
|
||||
- Owner: codex
|
||||
- Status: Completed
|
||||
|
||||
## Scope
|
||||
|
||||
- Merge completed feature task `20260902-fix-bash-tool-bridge-9c4e7a12`
|
||||
(`49112b6`) into local `main`.
|
||||
- Reconcile the write-leased Pi tool-batch rule with README, canonical current
|
||||
state, and the evidence index.
|
||||
- Re-run focused real-process coverage, typecheck, and the production Vite build
|
||||
on the integrated tree, then restart the local Makelore platform.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve the feature task's bounded semantics: only tools that acquire the
|
||||
project write lease are serialized; read-only Pi tool batches remain parallel.
|
||||
- Do not replay or mutate the user's accepted, currently stuck Conversation as a
|
||||
smoke test. Use the disposable real-process regression instead.
|
||||
- Merge only to local `main`; do not push, package, deploy, or alter unrelated
|
||||
user changes.
|
||||
- Treat production build success as proof that packaging consumes the fixed
|
||||
resources, not as permission to claim an installer artifact was produced.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Merged source commit `49112b6` into local `main` as merge commit `55bf80e`.
|
||||
- Integrated the bounded Pi tool-batch correction: built-in `bash`, `edit`, and
|
||||
`write`, plus dynamic product tools that acquire the project write lease, are
|
||||
sequential within one assistant response. Read-only batches retain parallel
|
||||
execution.
|
||||
- Updated README, canonical current state, and the evidence index with the exact
|
||||
failure mechanism and verification boundary. A production build was verified;
|
||||
no installer was created, pushed, deployed, or published.
|
||||
- Stopped the old development process cleanly so its already-open Agent Server
|
||||
could not keep serving the pre-fix resource. The platform restart is the final
|
||||
operational handoff after the integration commit.
|
||||
|
||||
## Verification
|
||||
|
||||
- Source branch: the pre-fix real-process regression reproduced the second Bash
|
||||
result as `fetch failed` under a 250 ms managed-extension HTTP idle timeout.
|
||||
- Source branch: 3 focused files / 9 tests, 213 full files / 1,733 tests with 3
|
||||
skipped, typecheck, lint with 0 errors / 5 existing warnings, and the full
|
||||
Renderer/Main/Preload/utility Vite production build passed.
|
||||
- Integrated `main`: the 3 focused Pi process/extension/worker files passed all
|
||||
9 tests, `pnpm run typecheck` passed, and `pnpm run build:vite` passed for all
|
||||
four production targets.
|
||||
- The regression verifies that a timed-out first Bash does not block the second
|
||||
Bash, the second returns `SECOND_OK`, and neither result contains `fetch failed`.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- A signed installer is unnecessary to correct this source-level deadlock. Build
|
||||
an installer only when release validation or distribution is requested; the
|
||||
normal packaged resource path already consumes the corrected Agent Server and
|
||||
v5 extension bundle.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None; the relevant runtime contract and evidence were promoted during this
|
||||
integration task.
|
||||
Reference in New Issue
Block a user