Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd8fbb3538 | ||
|
|
803e3d8173 | ||
|
|
d2c9a225e8 | ||
|
|
64785910aa | ||
|
|
3a6d3888e8 |
No files matched your search
@@ -4,6 +4,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- `6478591` / `3a6d388`: AI Canvas task-stream reconciliation now reuses an in-flight `connecting` Conversation stream instead of opening a duplicate; rapid Conversation-switching regression coverage is present. Canonical `main` promotion is pending release of the occupied main worktree, and real slow-handshake Electron smoke remains pending.
|
||||
- `ce897f1` / `6504073`: AI Programming now isolates prompt lifecycle, loading and errors by OpenCode Session. Main serializes only runtime/configuration acceptance, verifies project Agent content against an owned fresh runtime generation before execution, and returns typed terminal pending responses without automatically restarting, reloading or disposing the shared runtime. A run that receives no explicit busy/assistant/terminal acknowledgement within 10 seconds ends only that Session and is never replayed automatically. The application-side isolation is verified; real bundled OpenCode/provider two-Session execution concurrency is not claimed.
|
||||
- Project-cover source commit `145a6ce571d646325092d1e722282babea503954` from feature task `20260817-project-cover-upload-a6a98e56`, integrated by task `20260813-sync-push-main-9c2f71`. First submission now requires a bounded PNG/JPEG/WebP cover, shows preview/file/reselect feedback, and sends metadata plus cover through Main-owned `POST /api/projects/with-cover`; conflicts stop before version upload and existing draft/published projects remain version-only. The matching Works Square server source is `407c883` (local merge `0cedfc4`). No client package, production deployment, or real-account smoke occurred.
|
||||
- `3b37ac3` / `55e61b7`: macOS Robot hotspot discovery performs one bounded worker-thread rescan after an empty or SSID-redacted CoreWLAN result; persistent SSID redaction maps to the existing permission error instead of a misleading empty-device state, while firmware and the open `Xiaozhi-*` contract remain unchanged.
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Task: Finalize AI design session freeze promotion
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260819-finalize-session-freeze-9d4a
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: D:\Datas\OthersProjects\makelore
|
||||
- Base commit: 803e3d81739ae856d2a3a77496e4b71af8a06842
|
||||
- Owner: codex-root
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Finalize the user-authorized promotion of the reviewed AI Design rapid Conversation-switching fix, already present at canonical `main` `803e3d8`.
|
||||
- Record the completed promotion and its canonical verification without changing product behavior or rewriting existing history.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Operate in an exclusively owned Integration Gate worktree with the integration lock.
|
||||
- Keep the source feature task and prior integration task records read-only; this task records only the final promotion evidence.
|
||||
- Leave `main` clean and ahead of `origin/main` by the intended local integration commits; publishing remains a separate release action.
|
||||
|
||||
## Outcome
|
||||
|
||||
- `main` was fast-forwarded from `31332f6` to `803e3d8` after explicit user authorization to take over the clean worktree. No existing commit was reset, overwritten, or conflicted.
|
||||
|
||||
## Verification
|
||||
|
||||
- `check_project_docs.py --target .` passed before promotion.
|
||||
- `git merge-base --is-ancestor 31332f6 803e3d8` passed and `git merge --ff-only 803e3d8` completed successfully.
|
||||
- Canonical `main`: `tests/unit/image-workspace-store.test.ts` 31/31; `tests/unit/image-canvas-page.test.tsx` plus `tests/unit/works-square-design-workspace.test.ts` 79/79; scoped ESLint; TypeScript `--noEmit` all passed.
|
||||
- Existing React `act(...)` warnings appeared in the adjacent Canvas test and did not fail the suite.
|
||||
- Final task-aware documentation drift, `git diff --check`, and clean-worktree checks will run after this record is committed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Run the real logged-in Electron slow-handshake Conversation-switching smoke from the source task; local tests do not claim production gateway behavior.
|
||||
- Publish local `main` commits through the normal repository review/release process when desired.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. The reviewed fix is now present on canonical `main` and restores the existing stream-lifecycle invariant.
|
||||
@@ -0,0 +1,40 @@
|
||||
# Task: Integrate AI design session freeze fix
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260819-integrate-session-freeze-7c4e
|
||||
- Mode: Integration
|
||||
- Branch: codex/20260819-integrate-session-freeze-7c4e-integrate-session-freeze
|
||||
- Worktree: D:\mk-merge-session-freeze-4c2e
|
||||
- Base commit: 31332f6d766bd3733e6fbb9c07688765368c2fa0
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Integrate the reviewed client fix from feature task `20260819-makelore-session-freeze-7c4e` (`3a6d388`) into the client `main` base `31332f6`.
|
||||
- Preserve the peer task `20260818-video-duration-server-config-7b4e` and its occupied canonical worktree; do not rewrite `main` or any unrelated source.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Merge only the reviewed feature commit with a non-fast-forward integration commit; no reset, force update, stash, or destructive cleanup.
|
||||
- Keep the feature task record immutable and record integration evidence only in this integration task and the canonical `current-state.md`.
|
||||
- Leave the integration branch ready for promotion once the canonical `main` worktree is released by its owner.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Created merge commit `6478591` (`merge: integrate AI design session freeze fix`) with no conflicts. The final integration snapshot keeps the `connecting`-stream reconciliation fix in `src/stores/image-workspace.ts` and its regression test in `tests/unit/image-workspace-store.test.ts`; the source task record remains owned by the feature branch and is not promoted into the canonical tree.
|
||||
|
||||
## Verification
|
||||
|
||||
- Source worktree verification recorded by the feature task passed: focused store tests 31/31, adjacent Canvas/workspace tests 78/78, scoped ESLint, TypeScript `--noEmit`, `git diff --check`, documentation drift, and independent Sol review PASS.
|
||||
- Integration worktree rerun passed: store tests 31/31, adjacent Canvas/workspace tests 79/79, scoped ESLint, TypeScript `--noEmit`, `check_project_docs.py`, task-aware `check_doc_drift.py`, and `git diff --check`. The adjacent test suite emitted only its pre-existing React `act(...)` warnings.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Canonical client `main` remains owned by `20260818-video-duration-server-config-7b4e`; after that task releases the worktree, promote `6478591` to `main` and rerun the focused verification on the canonical checkout.
|
||||
- Perform a real Electron smoke with a deliberately slow event-stream handshake to cover the production timing boundary; this remains a follow-up from the feature task.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- `6478591` / `3a6d388`: update `current-state.md` under `Integrated Through` when the merge commit is promoted to canonical `main`.
|
||||
@@ -1026,7 +1026,7 @@ export const useImageWorkspaceStore = create<ImageWorkspaceState>((set, get) =>
|
||||
const conversationId = get().activeConversationId;
|
||||
const shouldReconcile = reconcileTaskStateOnNextConnect;
|
||||
reconcileTaskStateOnNextConnect = false;
|
||||
if (shouldReconcile && get().taskStreamState !== 'connected') {
|
||||
if (shouldReconcile && get().taskStreamState === 'degraded') {
|
||||
closeTaskEventSource();
|
||||
}
|
||||
if (workspaceId && conversationId) startTaskStream(workspaceId, conversationId);
|
||||
|
||||
@@ -385,6 +385,20 @@ describe('AI design task event store', () => {
|
||||
.toEqual(['继续优化海报', '已完成最新方向整理。']);
|
||||
});
|
||||
|
||||
it('keeps the in-flight stream connection when reconciliation is requested', async () => {
|
||||
const pendingSource = deferred<EventSource>();
|
||||
openImageWorkspaceTaskEventsMock.mockReturnValue(pendingSource.promise);
|
||||
|
||||
await useImageWorkspaceStore.getState().load();
|
||||
expect(useImageWorkspaceStore.getState().taskStreamState).toBe('connecting');
|
||||
expect(openImageWorkspaceTaskEventsMock).toHaveBeenCalledOnce();
|
||||
|
||||
useImageWorkspaceStore.getState().markTaskStreamNeedsReconciliation();
|
||||
useImageWorkspaceStore.getState().connectTaskStream();
|
||||
|
||||
expect(openImageWorkspaceTaskEventsMock).toHaveBeenCalledOnce();
|
||||
});
|
||||
|
||||
it('recovers a committed generation task when the Agent Run fails afterward', async () => {
|
||||
const source = new MockEventSource();
|
||||
openImageWorkspaceTaskEventsMock.mockResolvedValue(source as unknown as EventSource);
|
||||
|
||||
Reference in new issue
Block a user