Skip to content

Add issue create dependency contract#215

Merged
version-1 merged 1 commit into
mainfrom
agent/issue-41
Jun 24, 2026
Merged

Add issue create dependency contract#215
version-1 merged 1 commit into
mainfrom
agent/issue-41

Conversation

@version-1

Copy link
Copy Markdown
Owner

Add issue create dependency contract

Summary

POST /api/v1/issues now accepts dependency_ids and persists the new issue plus its initial dependency set in one store transaction.

主な変更点:

  • CreateIssueInputdependency_ids を追加し、create/update で dependency ID の基本検証を共有
  • Store.CreateIssue を transaction 化し、issue insert 後に既存の setDependencyIDsTx を再利用
  • OpenAPI、生成 frontend API type、MSW mock、英日 design docs を POST 契約に同期

チケットへのリンク

Issue #41

やったこと

  • CreateIssue の正常系(dependency あり / なし)と invalid dependency 入力のテストを追加
  • missing dependency で create が失敗したときに issue が残らないことを store test で確認
  • POST レスポンス JSON に dependency_ids が含まれることを API test で確認
  • frontend API client を npm run generate:api で再生成

動作確認

  • go test ./internal/issue/...
  • npm run generate:api from cmd/web/frontend
  • npm run typecheck from cmd/web/frontend
  • npm run build from cmd/web/frontend
  • go test ./...

レビュー & 動作確認 チェックリスト

  • Create contract - POST /api/v1/issuesdependency_ids が OpenAPI と生成型に反映されていること
  • Transaction behavior - dependency validation failure 時に作成途中の issue が rollback されること
  • Validation reuse - self-reference, missing ID, duplicate ID が既存 dependency validation 経路で拒否されること

推奨テスト計画:

  1. go test ./internal/issue/...
  2. npm run typecheck from cmd/web/frontend
  3. go test ./...

その他気になることや相談ごと

作成時に既存 issue との cycle を作るには新規 issue ID を事前参照できる必要があるため、実際に作成時に発生し得る cycle は自己参照として検証しています。既存 issue 間の cycle は既存の update dependency test で継続確認しています。

Allow POST /api/v1/issues to accept dependency_ids by extending CreateIssueInput and running issue creation plus dependency replacement in one store transaction.

Update OpenAPI, generated frontend API types, mock state, and design docs to reflect the create contract.

Verify create-time dependency success, empty dependencies, self-reference, missing dependencies, duplicates, rollback on failure, and response dependency_ids coverage.
@version-1 version-1 merged commit b88953d into main Jun 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant