Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
451d0da
fix: add missing jdk http sender for otlp metrics exporter (#3124)
adhraj12 Jan 4, 2026
8ceef5f
chore(telemetry): delay retry after clean failure (#3139)
superhx Jan 7, 2026
46d65c3
fix(metrics): enhance updatePartitionBytesIn to support custom count …
1sonofqiu Jan 13, 2026
81c049b
feat(zerozone): dual mapping (#3149) (#3151)
superhx Jan 13, 2026
dc69966
fix(strimzi): fix qemu version in CI (#3144)
Rancho-7 Jan 13, 2026
35e543f
docs: add quick start section for first-time contributors (#3146)
shreyas367 Jan 16, 2026
e634884
feat(connect): do not print s3 log stack connect (#3155) (#3156)
woshigaopp Jan 16, 2026
6d0dda2
perf(zerozone): optimize snapshot read cache memory fragmentation (#3…
superhx Jan 19, 2026
e325136
perf(zerozone): isolate the ObjectRouterChannel's alloc (#3162)
superhx Jan 19, 2026
8328c00
feat(coordinator): add listener support for group load/unload events …
1sonofqiu Jan 19, 2026
1b7b12c
fix(e2e): change runner (#3164) (#3165)
woshigaopp Jan 20, 2026
4420b19
feat(router): implement RouterPermitLimiter for managing append permi…
Gezi-lzq Jan 20, 2026
3c1e2b5
fix(e2e): change runner (#3167) (#3169)
woshigaopp Jan 21, 2026
5b6e72f
fix(e2e): support runner run in single (#3170)
woshigaopp Jan 22, 2026
c837630
fix(perf): fix backlog benchmark exits immediately due to time mismat…
johnluoyx Jan 22, 2026
ccb4b1b
fix: allow automq.zone.cidr.blocks to be set via static server.proper…
manmohak07 Jan 26, 2026
fb84ded
fix(zerozone): adapt to record magic 0-1 (#3179)
superhx Jan 27, 2026
d15ee25
feat(zerozone): disable append permit limiting by default (#3187)
Gezi-lzq Jan 28, 2026
3e1c99a
docs: Add GSoC 2026 documentation (#3186)
cneym1125 Jan 29, 2026
6222692
fix(zerozone): support old record magic0-1 (#3192)
superhx Jan 29, 2026
8ee964f
feat(zerozone): make automq.zone.cidr.blocks non-sensitive (#3194)
superhx Jan 29, 2026
96cf726
feat(s3): isolated default credentials (#3199) (#3200)
woshigaopp Feb 3, 2026
1f6ff1c
chore(test): add zerozone traffic verification test (#3207)
superhx Feb 5, 2026
730aa9f
fix(s3wal): 503 SlowDown during WAL recovery from S3 (#3198)
manmohak07 Feb 6, 2026
a36ec2e
feat(connect): support multi metrics instance (#3205) (#3209)
woshigaopp Feb 6, 2026
24a7c07
feat(license): add license support (#3213)
Rancho-7 Feb 9, 2026
ceb6943
fix(e2e): replace the openjdk base image (#3216)
superhx Feb 9, 2026
fef5c57
feat(dev): add local development environment (#3218)
Gezi-lzq Feb 10, 2026
ddbc1fd
fix(e2e): fix e2e base image and duckertap (#3222)
superhx Feb 11, 2026
bfe3e94
fix(e2e): fix zerozone test threshold (#3224)
superhx Feb 11, 2026
b23960f
feat(e2e): support debug mode (#3230)
superhx Feb 12, 2026
e90b315
fix(e2e): fix automq_zerozone_test iftop command permission (#3231)
superhx Feb 12, 2026
1ca02de
fix(metadata): improvise search (#3215)
manmohak07 Feb 13, 2026
056f52e
docs: add DevBox path to contributing guide (#3236)
Gezi-lzq Feb 24, 2026
a8a4e51
fix(log): fix truncateFullyAndStartAt bug (#3241)
superhx Mar 4, 2026
9d94a9b
fix: ServerSocket leak in AutoBalancerTestUtils#findLocalPorts (#3244)
iamsanjaymalakar Mar 9, 2026
f716a61
feat(connect): fix KAFKA-17719 (#3249) (#3250)
woshigaopp Mar 17, 2026
24613ab
fix(log): improve error handling and optimize active segment manageme…
1sonofqiu Mar 17, 2026
120a5ce
fix(metadata): fix KVImage memory leak (#3256)
superhx Mar 24, 2026
f6570b8
chore(e2e): change E2E job timeout to 2d (#3257)
superhx Mar 24, 2026
d6e5a2b
feat(tests): add shared nfs mount (#3264)
superhx Mar 30, 2026
87e03b4
build(s3stream): require Java 17 for the standalone Maven build (#3269)
yx9o Mar 31, 2026
a8ecc7f
feat(#3266): reset consumer group offsets while keeping consumers 'on…
superhx Mar 31, 2026
7c49292
feat(devkit): rename devbox to devkit and overhaul local dev environm…
Gezi-lzq Apr 1, 2026
9c3a07f
fix(tests): pin localstack to 3.3.0 (#3278)
superhx Apr 2, 2026
a7f89b3
feat(devkit): add HOST listener and simplify port mappings (#3285)
Gezi-lzq Apr 7, 2026
0685658
fix(tests): revert some changes in #923 to fix transactions_test (#3289)
superhx Apr 7, 2026
48cf9e6
feat(connect): revert fix KAFKA-17719 (#3249) (#3291)
woshigaopp Apr 8, 2026
07757e8
fix(connect): skip writing unchanged connector config to config topic…
woshigaopp Apr 8, 2026
ec096b3
feat(devkit): add namespace support for multi-instance isolation (#3295)
Gezi-lzq Apr 9, 2026
eb27d9c
docs: update readme (#3303)
Copilot Apr 11, 2026
42b2c37
docs: increase Honda logo size in README (#3304)
KaimingWan Apr 11, 2026
b7b483e
Update image width in README.md
vintagewang Apr 13, 2026
d63afdf
fix: replace sender-okhttp with sender-grpc-managed-channel for Strim…
rafaelsoutto Apr 13, 2026
3c84c84
fix(s3): fix concurrent write exception for oci (#3310)
allenzhu Apr 14, 2026
25eb90f
fix(s3stream): fix double-release race in LogCache.tryMerge (#3307) (…
superhx Apr 14, 2026
799a52b
feat(kv): add namespace support for KV store (#3318)
superhx Apr 15, 2026
c965a86
refactor: encapsulate KVImage/KVDelta map access to enforce KVKey typ…
superhx Apr 17, 2026
6d5c12f
fix: add AutomqUpdateGroup request/response to RequestConvertToJson (…
1sonofqiu Apr 20, 2026
fdb3b9b
build: cherry-pick dependency alignment and packaging fixes from 1.7 …
Gezi-lzq Apr 20, 2026
d166824
feat(maven): publish maven snapshot package (#3328)
allenzhu Apr 21, 2026
762c90b
fix(workflow): dynamically fetch kafka version (#3300)
1sonofqiu Apr 21, 2026
d75723d
feat: add cluster events framework with protobuf-based event publishi…
superhx Apr 15, 2026
b11885a
refactor: move flush scheduler into ClusterEventPublisher with Cluste…
superhx Apr 20, 2026
8285be6
fix(workflow): fetch tag before reading gradle.properties via git sho…
1sonofqiu Apr 22, 2026
b3e8976
fix: exclude transitive kafka-clients from cloudevents-kafka (#3334) …
superhx Apr 23, 2026
721e889
feat: add activate/deactivate lifecycle hooks to QuorumControllerExte…
superhx Apr 27, 2026
f1005d2
fix: prevent data loss caused by DataBlockIndex.endOffsetDelta int er…
superhx Apr 27, 2026
8d0baa4
fix: buffer over-allocation in AutoBalancerMetrics.bodySize() (#3323)
cnkLmxf Apr 27, 2026
e8dc553
chore: enable OTLP and Prometheus telemetry exporters (#3341)
Gezi-lzq Apr 27, 2026
1f8fff9
feat(routerchannel): support api for querying RouterChannelEpoch (#3331)
allenzhu Apr 29, 2026
9be17ab
fix: handle empty read-committed elastic log fetch (#3346)
1sonofqiu May 8, 2026
9d147f4
feat(zerozone): add async partition snapshot long polling (#3344) (#3…
superhx May 9, 2026
b63d06b
fix(s3stream): avoid aliasing LogCache merge sources (#3349) (#3350)
superhx May 9, 2026
db8dca1
docs(devkit): document broker log location (#3355) (#3356)
superhx May 10, 2026
d3c600e
fix: pick async sender prerequisites and validation to main (#3360)
Gezi-lzq May 13, 2026
d116aaf
feat: expose broker resource stats for autoscaling (#3367) (#3368)
superhx May 25, 2026
14a8324
fix(zerozone): add response size validation in RouterOut.handleRouter…
LukeSantossz May 28, 2026
17f445c
fix: pass table topic schema registry client config (#3376)
Gezi-lzq May 28, 2026
5ecf211
fix(s3stream): reduce CPU overhead in AsyncNetworkBandwidthLimiter wh…
JUSTMEETPATEL May 29, 2026
8cce597
fix: dedupe S3 metadata after snapshot replay (#3370)
Gezi-lzq May 29, 2026
56a1a2a
fix: stabilize enterprise E2E on main (#3386)
Gezi-lzq May 30, 2026
43ae689
fix: e2e test discovery issues (#3385)
Gezi-lzq May 31, 2026
9bb97e1
ci: improve nightly e2e reporting and artifacts (#3381)
Gezi-lzq May 31, 2026
f02955b
fix: isolate MirrorMaker KRaft cluster IDs (#3387)
Gezi-lzq Jun 1, 2026
4ac740c
fix: retry delete objects per key (#3392) (#3393)
superhx Jun 1, 2026
fda7034
test: fix consumer test syntax (#3388)
Gezi-lzq Jun 1, 2026
97d3116
test: run compatibility e2e on x86 (#3394)
Gezi-lzq Jun 1, 2026
ba8fa7c
test: stabilize connect e2e (#3391)
Gezi-lzq Jun 1, 2026
ea7709d
perf(failover): accelerate failover (#3398) (#3406)
superhx Jun 8, 2026
e4849b7
fix(s3wal): optimize wal upload prepare by batching objectId (#3374)
echooymxq Jun 8, 2026
e341437
feat: add retry storm backoff (#3380) (#3405)
superhx Jun 8, 2026
a583510
fix(package): declare proto source jar dependency (#3408)
Gezi-lzq Jun 8, 2026
cd6e887
fix(auth): add authorization for AutoMQ API keys (#3410) (#3411)
superhx Jun 9, 2026
3897d1c
test: backport static consumer fencing fix (#3403)
Gezi-lzq Jun 10, 2026
05dd321
fix: precompute s3 write checksums (#3416) (#3417)
superhx Jun 12, 2026
c9e4ccd
fix(s3stream): abort upload part on NoSuchUploadException to prevent …
divyanshu1810 Jun 15, 2026
b693b3a
fix(s3stream): limit cleanup v1 compaction scope (#3423) (#3425)
superhx Jun 17, 2026
cd6aaf5
fix: align metrics exporter naming (#3424) (#3426)
superhx Jun 17, 2026
7320ee0
fix(log): release records after offset metadata lookup (#3427) (#3428)
superhx Jun 17, 2026
8d706a6
chore(s3stream): smo0th the interval upload (#3436)
superhx Jun 23, 2026
47d3ae4
ci: reduce E2E artifact storage usage (#3437)
Gezi-lzq Jun 29, 2026
9615429
feat: add runtime monitor (#3420) (#3438)
superhx Jul 1, 2026
599bbff
perf(failover): optimize failover to reduce latency. (#3412)
echooymxq Jul 1, 2026
30d0e56
fix(s3stream): track stalled pending requests (#3441) (#3442)
superhx Jul 2, 2026
5294b75
fix(tabletopic): use stable fps metric name (#3439)
Gezi-lzq Jul 2, 2026
9697fd9
feat(connect): Add Connect startup failure log (#3444)
woshigaopp Jul 2, 2026
79b7618
feat: parallelize list offset handling (#3445) (#3447)
superhx Jul 3, 2026
26918f0
feat(s3stream): support cross-bucket multipart copy (#3450)
superhx Jul 7, 2026
476ba60
fix(s3stream): distinguish unset write bucket (#3451)
superhx Jul 7, 2026
932b193
refactor(s3stream): move metrics declarations to owners (#3454)
superhx Jul 9, 2026
76a4cc4
feat(metrics): optimize dynamic metric configuration
sachin428z Jul 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
39 changes: 39 additions & 0 deletions .agents/coding-conventions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
last_updated: 2026-05-28
---

# Coding Conventions

## 1. Language Choice

- AutoMQ runtime code is Java-first.
- New production classes should be Java unless they are tightly extending an
existing Scala-only Kafka integration surface.
- Avoid adding new Scala runtime types for standalone AutoMQ behavior.
- If a change touches an existing Scala class, keep the edit local and do not
migrate unrelated code just to satisfy the Java-first rule.

## 2. Documentation

- Code comments and Javadocs are written in English.
- New public classes should have class docs that describe responsibility and
boundary.
- New public methods should have method docs that describe behavior, inputs,
outputs, state changes, lifecycle effects, or failure semantics when relevant.
- Avoid comments that only repeat the method or field name.

## 3. Scope Control

- Prefer existing Kafka/AutoMQ abstractions and module boundaries.
- Do not introduce new dependencies when the JDK or existing project utilities
are enough.
- For stateful runtime code, make ownership of lifecycle, concurrency, and
cleanup explicit in the API or class documentation.

## 4. Kafka Fork Markers

- When adding or changing AutoMQ logic inside an existing Kafka source file,
wrap the logic with `// AutoMQ inject start` and `// AutoMQ inject end`.
- Do not add inject markers around import-only changes.
- Keep marker ranges small so future Kafka upstream merges can identify the
AutoMQ-owned behavior.
28 changes: 28 additions & 0 deletions .agents/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
last_updated: 2026-05-29
---

# Review Conventions

## 1. Review Range

- Review pull requests against the target branch full diff, such as
`origin/1.7...HEAD`.
- Do not limit review to the latest commit unless the user explicitly asks for
an incremental review.

## 2. Repository Rules

- Check new production and test classes against the Java-first rule in
`coding-conventions.md` and `testing.md`.
- Check new public class, public method, and test method docs against the
documentation rules in `coding-conventions.md` and `testing.md`.
- Check AutoMQ changes inside existing Kafka source files for narrow
`// AutoMQ inject start` and `// AutoMQ inject end` markers.

## 3. Verification

- Before claiming an AutoMQ coding task is done, confirm the required local gate
from `testing.md` has passed.
- Treat CI failures as review feedback: reproduce or inspect the failing gate,
fix the cause, and rerun the relevant local command before handing off.
59 changes: 59 additions & 0 deletions .agents/testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
last_updated: 2026-05-29
---

# Testing Conventions

## 1. Language Choice

- New AutoMQ tests are Java-first.
- Add Scala tests only when extending an existing Scala test class is clearly
lower-risk than creating a Java test.

## 2. Test Documentation

- Test method docs are written in English.
- Each new test method should describe the scenario or contract being protected.
- Prefer Given/When/Then wording for rule-heavy behavior and edge cases.
- Avoid comments that only restate the test method name.

## 3. Tagged Test Selection

- AutoMQ CI commonly runs tagged test tasks instead of every Gradle test task.
- New focused AutoMQ unit tests should be tagged with `@Tag("S3Unit")` when
they are expected to run in the tagged S3Unit selection.
- When verifying AutoMQ changes locally, prefer the workflow-style tagged
selection when the change is broad enough:

```bash
./gradlew --build-cache metadata:S3UnitTest core:S3UnitTest s3stream:test
```

- For narrow changes, run focused `core:S3UnitTest --tests ...` first, then
broaden to the workflow-style selection before handing off.
- When adding E2E coverage, include the test in the appropriate
`tests/suites/automq_test_suite*.yml` suite so the CI selection can discover
it.

## 4. Required Completion Gate

- Before claiming an AutoMQ coding task is done, run the CI-style formatting,
license, and checkstyle gate:

```bash
./gradlew --build-cache rat checkstyleMain checkstyleTest spotlessJavaCheck
```

- Do not replace this gate with focused unit tests. Run it in addition to the
relevant focused or tagged test selection for the change.

## 5. Checkstyle Suppression

- Use narrow `@SuppressWarnings` only when the rule conflicts with a deliberate
structure, such as enum-switch hot-path classification, schema dispatch, or a
test class that must cover many generated protocol data types together.
- Prefer fixing ordinary style issues, unused imports, missing locale, and
low-cost complexity reductions instead of suppressing them.
- When suppressing a Checkstyle rule in code, keep the annotation at the
smallest practical scope and include the `checkstyle:` prefix when suppressing
a specific method-level Checkstyle rule.
20 changes: 19 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,29 @@ on:
branches: [ "main" ]

jobs:
changes:
runs-on: ubuntu-latest
outputs:
build: ${{ steps.filter.outputs.build }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
build:
- '**'
- '!.agents/**'
- '!**/*.md'
- '!docs/**'
- '!specs/**'
build-automq:
needs: [ changes ]
if: ${{ needs.changes.outputs.build == 'true' }}
uses: ./.github/workflows/build_automq.yml
build-result:
runs-on: ubuntu-latest
needs: [ build-automq ]
needs: [ changes, build-automq ]
if: ${{ always() }}
steps:
- uses: actions/checkout@v4
Expand Down
Loading
Loading