Skip to content

feat(stovepipe): add start controller for the change ingress flow#229

Draft
mnoah1 wants to merge 2 commits into
mainfrom
mnoah1/stovepipe-start-controller
Draft

feat(stovepipe): add start controller for the change ingress flow#229
mnoah1 wants to merge 2 commits into
mainfrom
mnoah1/stovepipe-start-controller

Conversation

@mnoah1

@mnoah1 mnoah1 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Stovepipe gateway -> start -> validate skeleton:

  • ChangeEvent: single-commit, source-agnostic ingress payload ({"uri": "git://owner/repo/branch/revision"}) published to the start topic by the webhook/poller.
  • start controller deserializes the ChangeEvent, derives the owner/repo partition key so a repo's commits stay ordered, and publishes a thin ChangeURI reference to the validate topic (publish-only until validate lands).
  • stovepipe/entity/git parses git:// commit identities into a ChangeID, domain-scoped like submitqueue's github/phabricator ChangeID parsers.

Deferred to follow-up PRs once their consumers exist: orchestrator commit storage, the gateway status/log sinks, and lifting the cross-domain change identity into the shared entity package (a SubmitQueue refactor unrelated to this flow).

Why?

What?

Test Plan

Issue

mnoah1 added 2 commits June 9, 2026 20:25
…key packages

Move the shared queue consumer framework to top-level core/consumer so both
SubmitQueue and Stovepipe can reuse it. Pipeline stage constants now live in
per-domain submitqueue/core/topickey and stovepipe/core/topickey packages.
Stovepipe gateway -> start -> validate skeleton:
- ChangeEvent: single-commit, source-agnostic ingress payload
  ({"uri": "git://owner/repo/branch/revision"}) published to the start topic
  by the webhook/poller.
- start controller deserializes the ChangeEvent, derives the owner/repo
  partition key so a repo's commits stay ordered, and publishes a thin
  ChangeURI reference to the validate topic (publish-only until validate lands).
- stovepipe/entity/git parses git:// commit identities into a ChangeID,
  domain-scoped like submitqueue's github/phabricator ChangeID parsers.

Deferred to follow-up PRs once their consumers exist: orchestrator commit
storage, the gateway status/log sinks, and lifting the cross-domain change
identity into the shared entity package (a SubmitQueue refactor unrelated to
this flow).
@mnoah1 mnoah1 force-pushed the mnoah1/stovepipe-start-controller branch from 424e438 to 5ca558a Compare June 9, 2026 21:58
@mnoah1 mnoah1 force-pushed the mnoah1/lift-core-consumer branch from 2a53a64 to 425f060 Compare June 12, 2026 15:40
Base automatically changed from mnoah1/lift-core-consumer to main June 12, 2026 15:45
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.

2 participants