[상류 3단계] W3 stored hold-step semantics #207
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 25·183행 W3: hold step을 이름이 아니라 저장된 성격으로 분류(import/editor 호환). visibility/deletion #4711/#4736은 별개로 이미 제출됨. 독립 분류 속성이며 control 표시가 task를 멈추거나 옮길 권한이 아님.
원 source
commit 5c122c572 (git store D:/260720_Ai_Workspace_Tools/kandev-upstream-native-20261015/.git). 범위: workflow engine/models/loader, repository/hold_stage_type.go, editor StepHoldRow/types.
할 일
자기 Native 새 사본(base 현재 upstream main) → current main·열린 PR에 동등 수정이 있는지 대조(있으면 근거 기록으로 끝) → 빠졌으면 최소 포팅, 실제 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. 다른 활성 source와 같은 파일을 동시에 쓰게 되면 그 경로를 8e에 알리고 순서를 받는다. 운영 변경 0.
8e receiving acceptance: ACCEPT stage-3 W3 stored hold-step semantics source unit (task 66b1cf0c-ae60-491a-858c-7440566d6736, single writer). 8e read-only checks: worktree kandev-upstream-s3-w_xanz6new branch feature/kandev-upstream-s3-w-i78 HEAD 96b1a591ec0c3e56ba37782b4ffcb8a6ca834852, clean, 2 commits on upstream main dc2d77359f101fe398255112346b60c617477162 (2b3df1c09c61 implementation, 96b1a591ec0c docs + help text), 29 files +408/-23. Upstream .github/scripts/pr-docs.cjs validateCoverage run locally by 8e: covered, errors 0. RV: implementation FORMAL-rv-packet.md-1793249469575197100-40311-mid-1 APPROVE (1 advisory finding on help text, now fixed); docs/copy delta FORMAL-rv-packet-docs.md-1793250437107639400-18737-mid-1 (CALL-20261029-1439be960965) completed APPROVE findings 0 (8e read both records). 8e-requested pre-publication fixes done: (1) AC-TASKS-MODEL-UNIFICATION-001.7 + design note + docs/plans/workflow-hold-step-nature plan and task-01; (2) holdStepHelp in 8 locales now describes only the stored classification and its non-effect on execution. Source-reported checks: go build/vet, focused workflow engine/repository/service/config tests pass (TestResolveCurrentRunner_FallsBackToLatestTaskRunner fails identically on clean base), golangci-lint 0, gofmt clean, one-off backfill/export round-trip checks, tsc/eslint/i18n:check pass, list-docs validate and lint-spec-files pass, normal hooks pass. Known scope limits: the overview consumer of the stored value does not exist upstream and is not ported; open PR #4714 overlaps export.go/service.go/sync_apply.go/sqlite.go with a 4-value portable stage_type carry - if #4714 lands first, rebase to add hold to its allow-list only. Shared path: #4736 source fe8d3c74 may touch workflow/repository/sqlite.go delete paths, not normalizeStageType/initSchema. No push/PR/comment from source. Publication: 93->5d new narrow PR.
W3 stored hold-step semantics: ported PR #174 stored hold nature onto current upstream main. Reviewed head 96b1a591ec0 (base dc2d77359f1), 2 commits (implementation 2b3df1c09c6 + docs/copy 96b1a591ec0). Formal RV APPROVE twice (impl CALL-20261029-1cf391186779; docs copy CALL-20261029-1439be960965), 0 blocking findings. Docs coverage validateCoverage covered. Handed the reviewed package to the publication owner (93 to 5d) for a new narrow upstream PR; this source did not push and opened no PR. Flow closure is connected by the publication owner after the upstream PR.
8e receiving acceptance (#4938 review follow-up): ACCEPT W3 head a21a6d85c291ac79c829930bbb033fc74a8b5610 for the four inline threads on kdlbs/kandev#4938. 8e read-only checks: same worktree/branch feature/kandev-upstream-s3-w-i78, clean, descendant of public head 96b1a591ec0c (non-force FF possible), 2 new commits b8487d626ba + a21a6d85c29, 7 files vs 96b1: hold_stage_type.go, existing completion_policy_test.go, web workflow-pipeline-editor-helpers.tsx/.test.tsx (existing test file), workflow-pipeline-editor-panels.tsx, model-unification requirements + design. No new test file. 8e ran upstream pr-docs.cjs validateCoverage on the full diff from dc2d77359f10: covered, errors 0. Delta RV FORMAL-rv-packet-fix.md-1793255897053370800-24325-mid-1 (CALL-20261029-343737a50ccf) completed APPROVE findings 0 (8e read the record); the first delta RV CALL-20261029-528e7a54b5ff REQUEST_CHANGES (template stage_type null decoded as empty) was fixed with pointer decoding plus a null case. Dispositions (all real defects, fixed): xbMTl backfill now converts only hold-named steps whose stored nature is empty/custom in rows and templates, explicit work/review/approval/hold and non-string/null kept, marker unchanged (8e decision 2df145e8 q1_opt1); xbMdZ unticking hold restores the saved non-hold nature, else custom; xbPiI resolved by the same scope so buildTaskAssignedPrompt/isReviewOrApprovalStage keep decision prompts; xbPiL minimal regressions in existing test files. AC 001.7 and design note corrected to the default-nature scope. Source-reported: new Go test pass, workflow repository/engine/service/config packages ok except the known equal-created_at flake, gofmt/golangci-lint 0, vitest 13, tsc/eslint/i18n:check, spec lint/list-docs, hooks pass. Pending from the same source: top-level CodeRabbit review 5693254655 (Unverified, legacy export hold-name without stage_type) disposition. No push/comment from source. Publication: 93->5d same #4938 non-force FF and the four replies/resolves.
8e publication acceptance: W3 stored hold-step semantics is published upstream as kdlbs/kandev#4938. 8e gh readback 2026-10-29: OPEN, MERGEABLE, head a21a6d85c291ac79c829930bbb033fc74a8b5610 = reviewed head accepted in artifact-note:20261029T064308494634Z (base dc2d77359f10), unresolved review threads 0 (four inline threads answered and resolved by sole publisher 5d; root readback replies 4409451867/2266/2890/3437), top-level CodeRabbit review 5693254655 answered as by-design in issuecomment-6489998992. Formal RVs: 40311-mid-1, 18737-mid-1, 24325-mid-1 all APPROVE findings 0. Remaining outside this unit: full CI and maintainer review/merge (not claimed). Source branch and worktree preserved; no branch deletion.
The step signal is already accepted (
already_signaled) — no retry needed. Ending here.Summary of this review round (#4938):
a21a6d85c29(basedc2d77359f1), 4 commits, tree clean; push/PR/댓글/resolve 0.custom) hold-named steps; work/review/approval/already-hold/non-string/nullpreserved.5693254655) → non-defect (by design):holdStepNamesis read only by the one-time backfill, import never infers from the name, and a legacy export's hold-named step imports as the defaultcustom(same as before this PR); re-adding name inference would violate the rename-independence AC. No change.CALL-20261029-528e7a54b5ffREQUEST_CHANGES (null) → fixed → re-RVCALL-20261029-343737a50ccfAPPROVE (0 findings).a21a6d85c29and posts the replies/resolves.