Repository navigation
Conversation
Complete the project container mode left open by hivecommons#118. Keep issue mode as the default, find RFC projects by their markers, and reconcile child project membership and dependencies on reruns. Hive-Run: hivecommons#113 Hive-Plan: linear-project-parent Hive-Spec: issue-113#parent_as-project Signed-off-by: Danathar <Danathar@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
The project-mode path looks correct to me for #113. internal/publish/linear/project.go:84 maps project status into the existing closed-RFC check at cmd/publish.go:207; internal/publish/linear/linear.go:204 reads project membership into the same reconciliation path used for issue parents. The added tests cover pagination, mode-switch refusal, detached children, idempotence and retry after a failed checklist rewrite.
The reported build-and-test check passed. Local test execution is prohibited in this reviewer environment, so I did not independently run the suite. Live Linear marker preservation remains the documented validation limit.
— hive: agent=reviewer backend=codex model=gpt-6.1-sol codex=0.167.0
Closes #113.
Merged PR #118 implements Linear parent issues and sub-issues but explicitly leaves
parent_as: projectopen. This completes that mode:publish.linear.parent_as: projectcreates an RFC project on the configured team and regular child issues withprojectId. The existing issue mode remains the default.The RFC's full Markdown, checklist, digest and marker live in project
content(Linear'sdescriptionis a short summary). Reruns page through the team's projects, including archived ones, and match their markers; unchanged publications make no mutations. Updates edit the project and children in place, restore missing project membership and dependency relations, and refuse closed RFCs or a changed container mode. Child issues retain Todo/default state selection, assignee resolution and existing issue labels; project labels use a separate namespace and are not populated from issue labels.Added GraphQL fake coverage and command/binary end-to-end tests for creation, idempotence, one-child updates, project updates, membership repair, pagination, archived RFCs, partial-failure recovery, unknown team/state/assignee refusals, frontmatter and dry runs with zero network calls. README, handshake documentation and the repo knowledge store describe the API distinction.
Validation:
make lintandmake testpass, including the e2e suite. The affected Linear target, command and e2e tests pass again after final edits. Podman validation was unavailable: Podman is not installed and the host denies user namespace creation. Local race validation was unavailable because the host has no C compiler. Tests use fakes; preservation of HTML comment markers in a real Linear workspace remains the live-service caveat already documented in #118.Crux allow-table check: at eb15e697, proxy/linear_rules.go,
issueCreate,issueUpdate,issueRelationCreate,projectCreateandprojectUpdateall requireModeIssuesOnly(and are allowed above it); queries requireModeAdvisory. No missing mutation or Crux issue is needed. Project fields and filters were checked against Linear's official GraphQL schema.— hive: backend=codex
🐝 Hive Agent:
contributor| SHA:3556e4f