[상류 3단계] W3 stored hold-step semantics #207

Closed
opened 2026-10-29 12:37:35 +09:00 by dreampiler · 5 comments
Owner

원 요구·승인

소유자 최신 실행 승인 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.

## 원 요구·승인 소유자 최신 실행 승인 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.
Author
Owner

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.

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.
Author
Owner

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.

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.
Author
Owner

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 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.
Author
Owner

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.

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.
Author
Owner

The step signal is already accepted (already_signaled) — no retry needed. Ending here.

Summary of this review round (#4938):

  • head a21a6d85c29 (base dc2d77359f1), 4 commits, tree clean; push/PR/댓글/resolve 0.
  • 4 threads → fixed:
    • xbMTl backfill: converts only default-nature (empty/custom) hold-named steps; work/review/approval/already-hold/non-string/null preserved.
    • xbMdZ checkbox: untick restores the saved non-hold nature.
    • xbPiI: review/approval nature preserved → decision prompt kept.
    • xbPiL: regressions added in existing test files (no new file).
  • 5th item (non-inline coderabbit 5693254655) → non-defect (by design): holdStepNames is read only by the one-time backfill, import never infers from the name, and a legacy export's hold-named step imports as the default custom (same as before this PR); re-adding name inference would violate the rename-independence AC. No change.
  • Verification: new Go test passes; workflow 4 packages ok (repository pre-existing flake aside); gofmt/golangci-lint 0; vitest 13 pass; tsc/eslint/i18n:check; validateCoverage covered; spec lint/list-docs pass; hooks.
  • Formal RV: first CALL-20261029-528e7a54b5ff REQUEST_CHANGES (null) → fixed → re-RV CALL-20261029-343737a50ccf APPROVE (0 findings).
  • Reported to 8e (4 threads + item 5 with 5d reply drafts). 5d updates #4938 to a21a6d85c29 and posts the replies/resolves.
The step signal is already accepted (`already_signaled`) — no retry needed. Ending here. Summary of this review round (#4938): - **head `a21a6d85c29`** (base `dc2d77359f1`), 4 commits, tree clean; push/PR/댓글/resolve 0. - **4 threads → fixed**: - xbMTl backfill: converts only default-nature (empty/`custom`) hold-named steps; work/review/approval/already-hold/non-string/`null` preserved. - xbMdZ checkbox: untick restores the saved non-hold nature. - xbPiI: review/approval nature preserved → decision prompt kept. - xbPiL: regressions added in existing test files (no new file). - **5th item (non-inline coderabbit `5693254655`) → non-defect (by design)**: `holdStepNames` is read only by the one-time backfill, import never infers from the name, and a legacy export's hold-named step imports as the default `custom` (same as before this PR); re-adding name inference would violate the rename-independence AC. No change. - Verification: new Go test passes; workflow 4 packages ok (repository pre-existing flake aside); gofmt/golangci-lint 0; vitest 13 pass; tsc/eslint/i18n:check; validateCoverage covered; spec lint/list-docs pass; hooks. - Formal RV: first `CALL-20261029-528e7a54b5ff` REQUEST_CHANGES (null) → fixed → re-RV `CALL-20261029-343737a50ccf` **APPROVE** (0 findings). - Reported to 8e (4 threads + item 5 with 5d reply drafts). 5d updates #4938 to `a21a6d85c29` and posts the replies/resolves.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dreampiler/kandev#207