[상류 3단계] R1-A 명시 local metadata-only 복구 #210
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
원 요구·승인
소유자 최신 실행 승인 3단계. feature-pr-map 35행 R1(이 단위는 R1-A 명시 metadata-only 복구): explicit local metadata repair, inventory 보존 dedup, retired-environment history. 점유된 target 거부·정확한 metadata-only 경계·retired row 보존. 넓은 failed-environment 교체는 구현하지 않음(182·236행: 일반 recovery를 #4596/#4603에 붙이지 않음, retirement schema가 필요하면 이미 제출된 #4713 재사용).
원 source
commit fc2f36f9f, be0a4200e, 16da2d765, f70474da5(git store D:/260720_Ai_Workspace_Tools/kandev-upstream-native-20261015/.git). 범위: executor_inventory_metadata_only.go, session_inventory_metadata_only.go, workspace_inventory_fence/recovery, environment_dedup_preservation, task_environment/session migrations.
할 일
자기 Native 새 사본(base 현재 upstream main) → current main·#4713 등 열린 PR과 동등성 대조 → 빠진 metadata-only 몫만 최소 포팅, 실제 entrypoint 확인, 기존 test 파일 최소 회귀, 새 commit, normal hooks, 바뀐 delta만 gate rv-run → 첫 결과·검토된 head·영문 PR 초안을 8e/current 96e9d7f4-0840-479a-b7b6-3e18d45b4da4에 각 1회. 공개는 93→5d 새 좁은 PR. push/PR/댓글 0. migration·공통 파일 경합은 8e에 경로 보고. 운영 변경 0.
8e receiving acceptance (local candidate only): ACCEPT stage-3 R1-A metadata-only repair source unit (task bff84fb7-48b8-4ede-9fd8-c5140f5abc63) as a reviewed local candidate. 8e read-only checks: worktree kandev-upstream-s3-r_bunvehcr branch feature/kandev-upstream-s3-r-uoc HEAD 65c74adedbdaa473297205f52669ecbd0b0ec6d5, clean, 2 commits on upstream main dc2d77359f101fe398255112346b60c617477162, 15 files +354/-21 (4 new production files, 6 edits, 5 docs), no new test file, no migration. 8e ran upstream pr-docs.cjs validateCoverage (with the unchanged plan.md supplied): covered, errors 0. Formal RV FORMAL-rv-delta-review.md-1793258802685627600-38541-upper-1 completed APPROVE findings 0 after one REQUEST_CHANGES round (TOCTOU between terminal-session validation and fence capture, fixed). Source-reported: go build, focused executor/sqlite/orchestrator/handlers tests pass (host LFS filter isolated; unisolated failure reproduces on pristine base), golangci-lint 0, hooks pass; PostgreSQL not verified (no DSN). Publication classification (8e): the whole delta is the optional public workspace_only request mode (websocket repair_workspace_inventory workspace_only=true -> recoverInventoryMetadataOnly; fence only set on that path; docs/public/websocket-api.md and operations.md document it). This is exactly the extension asked in #3309 follow-up comment 6423796092, which has no maintainer answer; 93 recorded that this added mode needs maintainer direction before it enters public scope. So the candidate is preserved and not published yet (no repost/ping). R1-B (dedup + retired-environment history) stays a separate unit dependent on #4713. Flow stays open; no push/PR/comment.
R1-A 준비 완료(게시 대기).
작업 사본: C:\Users\dream.kandev\tasks\kandev-upstream-s3-r_bunvehcr\kandev (dreampiler/kandev worktree), branch feature/kandev-upstream-s3-r-uoc.
base: dc2d77359f101fe398255112346b60c617477162 (current upstream main). head: 65c74adedbdaa473297205f52669ecbd0b0ec6d5 (2 커밋: 147e52bfb93 포팅, 65c74adedbd RV round1 TOCTOU 수정). worktree clean; push/PR/댓글 0; 신규 migration 0.
범위: fc2f36f9f의 metadata-only 몫만 최소 포팅(신규 4 파일: executor/session metadata-only, models/sqlite fence; 수정 6 파일: claim, recovery, handlers, session_launch, preservation model, sqlite recovery; 문서 5 파일). be0a4200e/16da2d765(dedup)와 f70474da5(retired-environment)는 #4713 retirement schema 의존이라 미포함.
검증: go build -trimpath ./... 통과; 기존 focused Go test(executor repair/attestation 77.5s, sqlite inventory 13s, orchestrator recovery 21.6s, handlers 51s) 통과; golangci-lint 변경 패키지 0 issues; normal hooks 통과. PostgreSQL 미확인(권한 DSN 없음). metadata-only entrypoint 영구 test는 원 source와 동일하게 없음.
RV: round1 REQUEST_CHANGES(fence/terminal snapshot TOCTOU) → fence SessionState/SessionUpdatedAt를 검증된 terminal session에 결속하도록 수정 → round2 APPROVE, verdict FORMAL-rv-delta-review.md-1793258802685627600-38541-upper-1, findings 0.
산출물: _UserHub/_task/kandev-upstream-s3-r1a-metadata-repair-20261029/{rv-delta-review.md, RV-r1a-base-to-head.diff, RV-r1a-base-to-head.stat.txt, RV-r1a-name-status.txt, PR-DRAFT.md}.
인계/다음: 결과·검토 head·PR 초안을 부모 관제 8e3eb6b7(current session 96e9d7f4)에 1회 queued 전달 완료. 공개는 93→5d 새 좁은 upstream PR 몫. workspace_only 공개 동작은 comment 6423796092에 대한 maintainer 방향 대기 몫. R1-B(dedup + retired-environment history)는 #4713 의존으로 남음. 운영 변경 0.
2026-10-30 CM existing R1-A intake re-evaluation: retain taskbff84fb7-48b8-4ede-9fd8-c5140f5abc63 and flowKANDEV-UPSTREAM-S3-R1A-METADATA-REPAIR-20261029. Direct Git confirms clean feature/kandev-upstream-s3-r-uoc at65c74adedbdaa473297205f52669ecbd0b0ec6d5; parent acceptance artifact-note:20261029T074105457987Z remains valid. Canonical RV38541-upper-1 is completed/formalAPPROVE/findings0/missing0; preparation/checks/history retained without rerun. Existing source SIDE378c0f0 WAITING_FOR_INPUT is retained; no task duplication, start or move. Exact public condition remains direction on optional non-launching workspace_only mode in existing3309 follow-up comment6423796092, or an explicit existing93/sole5d publication-route decision under the original authority. Official3309 is CLOSED but has only that one dreampiler question dated2026-10-26T18:12:24Z and no maintainer answer; CLOSED does not resolve this follow-up. The comment explicitly says no new implementation PR before direction discussion, and current feature-pr-map preserves this publication condition. Do not republish/ping or make a new user approval gate. Accepted local metadata-only preparation is not undone; candidate/draft/branch/worktree remain. R1-B dedup/retired-environment schema depends on4713 separately and is not an R1-A prerequisite. Keep occupied-target refusal/server-derived identity/task-session-route fences/non-launching boundary/idempotency and known PG/runtime verification limits. On actual direction or authorized publication-route decision, same task returns to planning for only necessary delta before93/sole5d narrow public PR. Original flow stays open/created, no public integration or operational success claim. Existing business/operating-window/external-effect conditions remain unchanged; unrelated safe work continues.