docs: complete abort main integration
This commit is contained in:
@@ -6,8 +6,10 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
- Conversation abort reconciliation source
|
||||
`d2ef37bc4d7d3609cec0a55c4ae8ffb2734696d5` from task
|
||||
`20260901-conversation-abort-stall-6f4c2a91` is prepared for local `main`
|
||||
promotion by integration task `20260901-promote-conversation-abort-7b4e2c91`.
|
||||
`20260901-conversation-abort-stall-6f4c2a91` is merged into local `main` as
|
||||
`85900717906713d8343c2087eade904aead8f111` through verified candidate
|
||||
`599d1847f73a590690cbac2ee1c5bf36e8cd83f1` by task
|
||||
`20260901-merge-abort-main-a83d4c71`.
|
||||
Both visible abort actions now call the Main-owned abort route and then silently
|
||||
reload only the target Conversation's authoritative Snapshot. This closes the
|
||||
installed 1.2.1 case where Pi had already recorded bash results and a final
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
# Task: Fix running conversation abort stall
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260901-conversation-abort-stall-6f4c2a91
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260901-conversation-abort-stall-6f4c2a91-conversation-abort-stall
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-conversation-abort-stall-6f4c2a91
|
||||
- Base commit: 143aaec3d6770dd263bf1e418e89bf722989caef
|
||||
- Owner: codex-root
|
||||
- Status: Completed
|
||||
|
||||
## Scope
|
||||
|
||||
- Diagnose the installed 1.2.1 state where a Conversation continued to render as running and neither visible abort entry point unlocked the UI.
|
||||
- Correlate the screenshot with privacy-safe Main lifecycle and Pi Session metadata, then reproduce the stale-Renderer state at the public Chat seam.
|
||||
- Make both the Header and Composer abort actions reconcile the authoritative Conversation Snapshot after the abort request completes.
|
||||
- Add focused Renderer regression coverage and extend the existing Electron E2E fixture for a missed terminal SSE patch.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve ADR-006: Pi `0.84.2` remains the sole production runtime and Electron Main remains the only Pi/Host API authority.
|
||||
- Do not replay accepted or uncertain work, change the abort RPC/Host API contract, add polling, or introduce a fallback/compatibility path.
|
||||
- Treat the visible running state as evidence to investigate, not proof that the bash subprocess or Pi turn is still active.
|
||||
- Keep the change at the existing Renderer Host API boundary and use the existing target-only Snapshot recovery semantics.
|
||||
- Work only in the isolated feature worktree; do not modify the occupied `main` worktree or the completed 1.2.1 packaging task.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Confirmed the screenshot was from installed Makelore 1.2.1. The affected Pi JSONL Session recorded three bash tool results and a final assistant `stop` by 14:55:35, while the 14:59 screenshot still rendered the earlier bash call as executing. Main later stopped the already-idle logical thread through background sleep, so the supported incident was stale Renderer state rather than an indefinitely running curl process.
|
||||
- Reproduced the defect with a focused Chat test: the UI held a running Snapshot, the abort request succeeded against an already-terminal authority, but `getCodingConversationSnapshot` remained at one call and the UI stayed on `中止生成`.
|
||||
- Added one shared `abortConversation` path in `CodingChatPanel`: after the existing POST abort completes, it silently reloads that Conversation's authoritative Snapshot. Both the Header `中止` button and Composer `中止生成` button now use this path.
|
||||
- Kept error ownership in the existing controls: Header action failures remain local to Header, while Composer failures remain scoped to the originating draft/Conversation.
|
||||
- Updated the Electron E2E host fixture so a deliberately missed terminal SSE patch becomes an authoritative aborted Snapshot only after the user clicks abort; the test now proves both abort controls disappear and runtime settings unlock after reconciliation.
|
||||
|
||||
## Verification
|
||||
|
||||
- Red regression before the fix: `tests/unit/coding-chat-panel.test.tsx` failed because the Snapshot API was called once instead of twice after abort.
|
||||
- `pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-feature-ui.test.tsx tests/unit/coding-conversations-facade.test.ts tests/unit/pi-conversation-runtime.test.ts tests/unit/pi-worker-pool-process-integration.test.ts` passed: 5 files, 35 tests.
|
||||
- `pnpm run typecheck` passed.
|
||||
- Scoped ESLint over the two product files and three changed test files passed with no findings.
|
||||
- `pnpm run build:vite` passed for Renderer, Electron Main, Preload, and release utility bundles; only existing bundle-size/dynamic-import warnings were reported.
|
||||
- `pnpm exec playwright test tests/e2e/pi-coding-first-chat.spec.ts --grep "PI feature UI"` passed: 1/1 Electron E2E.
|
||||
- `pnpm test` passed: 215 files / 1780 tests, 2 skipped, plus the isolated pressure test 1/1.
|
||||
- `pnpm run lint:check` completed with 0 errors and 5 existing warnings in `src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`; no warning is in a changed file.
|
||||
- `git diff --check` passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- A new Windows installer must be built and installed before claiming the user's installed app contains this fix. Do not overwrite or relabel the already-built 1.2.1 artifact with changed source under the same version.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. This fix enforces the existing abort/terminal convergence and Snapshot recovery contracts without changing architecture or product direction.
|
||||
@@ -0,0 +1,91 @@
|
||||
# Task: Merge conversation abort reconciliation into main
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260901-merge-abort-main-a83d4c71
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: D:\Datas\OthersProjects\makelore
|
||||
- Base commit: ebc46c679da3907fd337e51b54c2da9f72c02755
|
||||
- Owner: codex-root
|
||||
- Status: Completed
|
||||
|
||||
## Scope
|
||||
|
||||
- Merge exact verified candidate `599d184` into local `main` after the
|
||||
human-authorized closure of packaging task `20260901-package-121-7a3c`.
|
||||
- Preserve the candidate's product implementation and canonical current-state
|
||||
reconciliation while retaining the packaging task's committed record.
|
||||
- Verify the merged product tree, exact ancestry, focused behavior, documentation
|
||||
boundaries, and clean task state. Do not package, install, publish, deploy, or push.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve ADR-006: Pi `0.84.2` remains the only production Coding runtime;
|
||||
Electron Main remains the Host API authority; accepted or uncertain work is never
|
||||
replayed; recovery remains target-only Snapshot/Patch convergence.
|
||||
- The existing 1.2.1 installer was built from pre-fix source and must not be
|
||||
overwritten or represented as containing this change.
|
||||
- The user explicitly authorized takeover of the known packaging task. That task was
|
||||
closed in commit `ebc46c6` and released cleanly before this Integration Gate began.
|
||||
- Concurrent and Planning Gates passed on exact base `ebc46c6`: the active record,
|
||||
candidate/source outcomes, accepted decision, canonical memory, and all 210 peer
|
||||
records were read. No semantic conflict or competing integration owner exists.
|
||||
|
||||
## Plan
|
||||
|
||||
1. Verify the candidate ancestry and conflict-free merge tree against current `main`.
|
||||
2. Merge candidate `599d184` with an explicit integration commit, preserving both
|
||||
the packaging closure and verified abort-reconciliation history.
|
||||
3. Run the focused abort UI regression plus typecheck and production build, then
|
||||
verify exact candidate product-tree parity and repository documentation gates.
|
||||
4. Record the actual merge and verification outcome, commit the integration ledger,
|
||||
complete the task, and release `main` from a clean state.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Verified a conflict-free merge tree
|
||||
`06a1e65143c10c67c4eda1b9ee277e13210bf01f` between current `main` and
|
||||
candidate `599d184`; their common base was `143aaec`, with one `main`-only and
|
||||
two candidate-only commits.
|
||||
- Merged the exact candidate into local `main` as
|
||||
`85900717906713d8343c2087eade904aead8f111`, preserving both packaging closure
|
||||
`ebc46c6` and the feature/integration history `d2ef37b` / `599d184`.
|
||||
- Omitted the two source-owned task-record copies from the final `main` file tree
|
||||
after the task-aware drift gate correctly rejected them. Their unchanged records
|
||||
remain reachable in source/candidate commits and merge history; product code,
|
||||
tests, and canonical current state remain integrated.
|
||||
- Canonical current state now records the actual local-main merge rather than a
|
||||
prepared promotion. No ADR, architecture, domain, README, dependency, package,
|
||||
installed data, deployment, publication, or remote branch was changed.
|
||||
|
||||
## Verification
|
||||
|
||||
- Post-merge product tree exactly matched verified candidate `599d184`; no non-doc
|
||||
path differs, and the candidate is an ancestor of `main`.
|
||||
- Focused post-merge regression passed: 5 files / 35 tests.
|
||||
- `pnpm run typecheck` passed.
|
||||
- `pnpm run lint:check` passed with 0 errors and the same 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 release
|
||||
utility bundles with existing build warnings only.
|
||||
- Post-merge Electron E2E passed: targeted `PI feature UI` scenario 1/1, including
|
||||
the missed-terminal-SSE abort reconciliation and both controls unlocking.
|
||||
- Source full-suite evidence remains applicable because the merged product tree is
|
||||
byte-identical to the candidate: 215 files / 1,780 tests with 2 skips, plus the
|
||||
isolated pressure test 1/1.
|
||||
- Task-aware documentation drift, project-document structure, merge ancestry,
|
||||
product-tree parity, whitespace, and clean-status checks are rerun before release.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Increment the application version, build and verify a new Windows installer,
|
||||
install it, and repeat the reported interaction before claiming installed-client
|
||||
acceptance. The existing 1.2.1 installer remains valid historical evidence but
|
||||
does not contain this fix.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Resolved: `.project-docs/30-worklog/current-state.md` records the exact source,
|
||||
verified candidate, local-main merge, unchanged contracts, and pending release
|
||||
gate. No further canonical promotion is proposed.
|
||||
@@ -1,72 +0,0 @@
|
||||
# Task: Promote conversation abort reconciliation
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260901-promote-conversation-abort-7b4e2c91
|
||||
- Mode: Integration
|
||||
- Branch: codex/20260901-promote-conversation-abort-7b4e2c91-promote-conversation-abort
|
||||
- Worktree: D:\Datas\OthersProjects\makelore-promote-conversation-abort-7b4e2c91
|
||||
- Base commit: d2ef37bc4d7d3609cec0a55c4ae8ffb2734696d5
|
||||
- Owner: codex-root
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Reconcile verified source commit `d2ef37b` from feature task
|
||||
`20260901-conversation-abort-stall-6f4c2a91` into canonical current state from a
|
||||
correctly based, exclusively owned Integration Gate.
|
||||
- Preserve the verified product tree exactly and prepare a clean candidate for local
|
||||
`main` promotion.
|
||||
- Keep the occupied `main` worktree and its completed 1.2.1 packaging-task record
|
||||
read-only until the human explicitly authorizes ownership transfer.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve ADR-006: Pi `0.84.2` remains the sole production runtime and Electron Main
|
||||
remains the only Pi/Host API authority.
|
||||
- Record an implementation correction to existing abort/Snapshot convergence, not a
|
||||
new public contract, replay policy, recovery mechanism, or background-lifecycle rule.
|
||||
- Do not overwrite or relabel the already-built 1.2.1 installer. Its bytes predate this
|
||||
source change, so installed-client acceptance requires a newly versioned package.
|
||||
- Concurrent and Planning Gates passed: the task identity, integration lock, exact
|
||||
source base, 211 peer records, current state, ADR-006, architecture, domain, evidence,
|
||||
reflection, commitments, and stale-item registry were checked. No semantic conflict
|
||||
was found; direct `main` promotion is ownership-blocked only.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Established the Integration Gate directly from verified source `d2ef37b`, so the
|
||||
source task record and product changes are part of the recorded base rather than
|
||||
foreign drift.
|
||||
- Added the exact source commit, confirmed installed-incident shape, shared abort then
|
||||
target-Snapshot behavior, unchanged contracts, verification, and remaining package
|
||||
gate to canonical `current-state.md`.
|
||||
- Left README, accepted ADRs, architecture, domain rules, evidence indexes, source task
|
||||
records, product code, tests, dependencies, packages, installed data, and `main`
|
||||
untouched. The resulting branch is the clean promotion candidate.
|
||||
|
||||
## Verification
|
||||
|
||||
- Source verification carried forward unchanged: 5 focused files / 35 tests, 215
|
||||
files / 1,780 full tests with 2 skips, isolated pressure 1/1, typecheck, scoped and
|
||||
full lint, Renderer/Main/Preload/utility production build, Electron E2E 1/1, and
|
||||
`git diff --check` all passed.
|
||||
- The source feature worktree remained clean at `d2ef37b`; this Integration Gate made
|
||||
no product-tree change relative to that verified base.
|
||||
- Task-aware documentation drift, project-document structure, exact product-tree,
|
||||
ancestry, and clean-status checks are run before task-context completion.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Local `main` remains owned by completed task `20260901-package-121-7a3c` and contains
|
||||
that task's untracked record. Promotion requires explicit human authorization to
|
||||
adopt, commit, and release that known task before advancing `main`.
|
||||
- After promotion, increment the application version, build and verify a new Windows
|
||||
installer, reinstall it, and repeat the reported abort interaction before claiming
|
||||
installed-client acceptance.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Resolved: canonical `current-state.md` now records the exact source, behavior,
|
||||
evidence, unchanged contracts, and package gate. No ADR, architecture, domain, or
|
||||
product-direction promotion is proposed.
|
||||
Reference in New Issue
Block a user