Skip to content

Tags: uber/submitqueue

Tags

v0.2.0-dev.2

Toggle v0.2.0-dev.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(runway): wire merge controller to Merger extension (#283)

## Summary
- Wire the merge controller to the `merger.Factory` extension so it
performs the committing merge instead of just logging
- Publish `MergeResult` (with produced revisions) to the `merge-signal`
topic — `SUCCEEDED` on clean merge, `FAILED` on `merger.ErrConflict`
- Mirrors the merge-conflict-check controller pattern from #280
- Publish errors are retryable; deserialize/factory/merge errors are
non-retryable
- Update example server wiring with merger factory, registry, and
merge-signal topic

Stacked on #280 — merge that first.

## Test plan
- [x] Unit tests: success (with output verification), merge conflict,
merger infra error, factory error, publish error (retryable),
deserialize error
- [x] `bazel test //runway/controller/merge:merge_test` passes
- [x] `bazel build //example/runway/server:runway` builds cleanly
- [x] `make gazelle && make fmt` — in sync

🤖 Generated with [Claude Code](https://claude.com/claude-code)

v0.0.0-20260702224710-3c1f280bdc42

Toggle v0.0.0-20260702224710-3c1f280bdc42's commit message
refactor: rename example/ to service/

The example/ tree holds the runnable server/client wiring for every
domain — it is the composition root, not throwaway demo code. Rename it
to service/ to reflect that role and update all references: Bazel labels,
Go importpaths, Makefile compose vars and targets, docker-compose build
contexts, integration/e2e suite paths, and documentation.

Also refresh the docs for the current layout:
- Rewrite service/README.md to include the runway service and the
  stovepipe Ingest/process pipeline (previously documented as Ping-only).
- Add service/runway/README.md and service/stovepipe/README.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

v0.0.0-20260702213753-3aef74e08643

Toggle v0.0.0-20260702213753-3aef74e08643's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(runway): wire merge controller to Merger extension (#283)

## Summary
- Wire the merge controller to the `merger.Factory` extension so it
performs the committing merge instead of just logging
- Publish `MergeResult` (with produced revisions) to the `merge-signal`
topic — `SUCCEEDED` on clean merge, `FAILED` on `merger.ErrConflict`
- Mirrors the merge-conflict-check controller pattern from #280
- Publish errors are retryable; deserialize/factory/merge errors are
non-retryable
- Update example server wiring with merger factory, registry, and
merge-signal topic

Stacked on #280 — merge that first.

## Test plan
- [x] Unit tests: success (with output verification), merge conflict,
merger infra error, factory error, publish error (retryable),
deserialize error
- [x] `bazel test //runway/controller/merge:merge_test` passes
- [x] `bazel build //example/runway/server:runway` builds cleanly
- [x] `make gazelle && make fmt` — in sync

🤖 Generated with [Claude Code](https://claude.com/claude-code)

v0.0.0-20260702211051-bfa7e702e240

Toggle v0.0.0-20260702211051-bfa7e702e240's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(runway): wire merge-conflict-check controller to Merger extension (

#280)

## Summary
- Wire the merge-conflict-check controller to the `merger.Factory`
extension so it performs the actual dry-run merge check instead of just
logging
- Publish `MergeResult` to the `merge-conflict-check-signal` topic —
`SUCCEEDED` on clean merge, `FAILED` on `merger.ErrConflict` (ack, not a
controller error)
- Publish errors are retryable (`errs.NewRetryableError`);
deserialize/factory/check errors are non-retryable (DLQ)
- Update example server wiring with noop merger factory and signal topic
in the registry

## Test plan
- [x] Unit tests: success, merge conflict, merger infra error, factory
error, publish error, deserialize error
- [x] `bazel test
//runway/controller/mergeconflictcheck:mergeconflictcheck_test` passes
- [x] `bazel build //example/runway/server:runway` builds cleanly
- [x] `make gazelle` — BUILD files in sync
- [x] `make fmt` — no formatting changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

v0.0.0-20260702165131-bf31d6096b66

Toggle v0.0.0-20260702165131-bf31d6096b66's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
(fix)build: disable proto rule generation, rely on checked-in .pb.go …

…for go-code compatibility (#293)

<!-- Provide a summary in the Title above. Example: "Feature: add user
authentication" -->

## Why?
We want the smoothest DX for consuming the OSS submitqueue repo in
go-code. Today go-code's `go_repository` uses `build_file_generation =
"on"`, so its Gazelle regenerates BUILD files for the vendored repo.
This causes conflicts and mismatches, and every version bump risks new
patching.

The root issue is that OSS carries proto types twice: as checked-in
`.pb.go` in `protopb/`, and as Bazel-generated code via
`go_proto_library` in `proto/`. Removing the Bazel proto rules in favor
of the checked-in `.pb.go` fixes several things at once:

- Eliminates duplicate proto definitions. The two generation paths share
the same importpath, which caused the duplicate-importpath ambiguity and
forced the `gazelle:resolve` workarounds. Collapsing to a single source
removes that whole class of conflict.
- Serves non-Bazel consumers. The Bazel-generated code only exists
inside a Bazel build graph. Anyone consuming submitqueue via plain `go
build/go get` (including OSS users) can only use the checked-in .pb.go,
so that path must work regardless. The Bazel proto rules are a redundant
second path that serves no one the checked-in files don't already serve.

## What?
Disable Gazelle proto rule generation and remove all proto compilation
rules, relying solely on checked-in `.pb.go` files.

- Add `# gazelle:proto disable_global` to prevent Gazelle from
regenerating proto rules on future make gazelle runs
- Remove the `gazelle:resolve directives` that are no longer needed
- Remove `proto_library`, `go_proto_library`, and alias `go_library`
rules
- Keep `exports_files` for `make proto` codegen
(`tool/proto/BUILD.bazel`)

## Test Plan
- `make build` - pass
- `make test` - 65/65 unit tests pass (integration/e2e tests fail due to
Docker dependency, pre-existing)
- `bazel build //tool/proto:generated` - proto codegen still works
- `make gazelle` - zero warnings, no duplicate-importpath ambiguity
- Validated in go-code with `--override_repository` pointing at this
branch: all 71 targets build, all 20 tests pass across stovepipe,
submitqueue/gateway, and submitqueue/orchestrator

## Issue
<!-- 
Link the issue here. 
- Use 'Closes #123' if this is the final fix. 
- Use 'Part of #123' or just '#123' if the feature is still in progress.
-->

---------

Co-authored-by: chenghan.ying <chenghan.ying@uber.com>

v0.0.0-20260701002417-6c01f910b85c

Toggle v0.0.0-20260701002417-6c01f910b85c's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
docs: specify conventional commits in CLAUDE.md (#289)

## Summary
Add a Commit Style section requiring the Conventional Commits
specification for commit messages.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Test Plan
✅ make fmt && make build && make test && make check-mocks && make
e2e-test

## Issues


## Stack
1. #287
1. #288
1. @ #289

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v0.0.0-20260701001858-85227cbb14a3

Toggle v0.0.0-20260701001858-85227cbb14a3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
docs: add AGENTS.md symlink to CLAUDE.md (#288)

## Summary
Symlink AGENTS.md -> CLAUDE.md so agent CLIs that read AGENTS.md (e.g.
Codex CLI) get the same repository guidance, with CLAUDE.md as the
single
source of truth.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Test Plan
✅ make fmt && make build && make test && make check-mocks && make
e2e-test

## Issues


## Stack
1. #287
1. @ #288
1. #289

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v0.0.0-20260701001019-aabd4345dcf6

Toggle v0.0.0-20260701001019-aabd4345dcf6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(orchestrator): emit batched request log from batch controller (#287

)

## Summary
Previously the batch controller was not publishing a request log on
completion. This is inconsistent with the other controllers, which
publish a terminal request log when its action is complete.

This PR emits a request log after the batch is persisted and before
publishing to score.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

## Test Plan
✅ make fmt && make build && make test && make check-mocks && make
e2e-test

## Issues


## Stack
1. @ #287
1. #288
1. #289

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v0.0.0-20260630023508-631f7789a628

Toggle v0.0.0-20260630023508-631f7789a628's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Split active batch states by controller use (#285)

## Summary
Split active batch state helpers
    
Use separate active-state sets for cancellation and batch creation. Add
the scoring request status so batches in scoring do not leave requests
with stale log state.

## Test Plan
✅ make fmt && make build && make test && make check-mocks && make
e2e-test

## Issues


## Stack
1. #284
1. @ #285
1. #287
1. #288
1. #289

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v0.0.0-20260630022958-97b461fb8a76

Toggle v0.0.0-20260630022958-97b461fb8a76's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Regenerate stale consumer controller mock (#284)

## Summary
`make check-mocks` was failing.

This PR ran `make mocks` to fix the mocks so `make check-mocks` is
passing.

## Test Plan
✅ `make fmt && make build && make test && make check-mocks && make
e2e-test`

## Issues


## Stack
1. @ #284
1. #285
1. #287
1. #288
1. #289