Summary
Upstream the Faire fork's Gradle build tool support (~2,836 lines across 10 Rust files + 13 fixtures + 16 snapshots) to rtk-ai/rtk. This is our fork's only material divergence from upstream.
Current state: Fork synced with upstream 0.30.0. Upstream develop at v0.31.0 with Copilot hooks, Gemini CLI, OpenClaw, emoji removal.
Precedent: Upstream accepts large single-PR features — .NET support was 4,284 insertions (rtk-ai#172), Python/Go was 2,053 insertions (rtk-ai#88). No RFC needed.
Plan (Revised)
Phase 1: Fork alignment PR → Faire/rtk:master ✅
PR: #22 (merged)
- Restored
LimitsConfig alongside GradleConfig
- Removed unused
_is_integration parameter
- Deleted dead
is_integration_test() and is_integration_task_name()
Phase 2: .rtk.toml repo-level config → rtk-ai/rtk:develop ✅
PR: rtk-ai#707 (draft)
RepoConfig struct with hooks, filters, gradle sections
find_repo_config_from() walks up to .git boundary
Config::load_from_dir() merges user + repo config
Phase 3: Gradle module → Graphite stack on rtk-ai/rtk:develop
One filter per PR, following upstream's scope rules. Tooling not enabled until 3j so no user-facing changes mid-stack.
| PR |
Branch |
Scope |
Savings |
Status |
| 3a |
feat/gradle-config |
GradleConfig struct + RepoConfig |
— |
✅ Done |
| 3b |
feat/gradle-core |
Core module + global noise filters + main.rs wiring + insta dev-dep |
70-90% |
✅ Done |
| 3c |
feat/gradle-compile |
Compile filter (kapt/KSP noise, path normalization) |
85%+ |
✅ Done |
| 3d |
feat/gradle-test |
Test filter (stack trace truncation, framework frame dropping) |
90%+ |
🔄 Next |
| 3e |
feat/gradle-detekt |
Detekt filter (violation grouping by rule) |
85%+ |
⬜ |
| 3f |
feat/gradle-health |
Health filter (passthrough after global) |
80% |
⬜ |
| 3g |
feat/gradle-proto |
Proto filter (extraction noise) |
75%+ |
⬜ |
| 3h |
feat/gradle-deps |
Deps filter (tree depth truncation) |
40%+ |
⬜ |
| 3i |
feat/gradle-batch |
Batch multi-task processing |
95%+ |
⬜ |
| 3j |
feat/gradle-discover |
Enable discover rule, remove gradle.toml |
— |
⬜ |
Stack Structure
feat/gradle-discover (3j) — discover rule + remove TOML filter
feat/gradle-batch (3i) — batch multi-task processing
feat/gradle-deps (3h) — deps filter
feat/gradle-proto (3g) — proto filter
feat/gradle-health (3f) — health filter
feat/gradle-detekt (3e) — detekt filter
feat/gradle-test (3d) — test filter
feat/gradle-compile (3c) — compile filter
feat/gradle-core (3b) — core module + global filters + wiring
feat/gradle-config (3a) — GradleConfig struct
feat/repo-config (PR #707) — .rtk.toml support
Notes
- Upstream PRs opened as drafts to invite early feedback
- All commits DCO signed (
git commit -s)
insta crate added as dev-dependency in 3b (flagged as open question for upstream maintainer)
- After upstream merge, evaluate fork version strategy
Summary
Upstream the Faire fork's Gradle build tool support (~2,836 lines across 10 Rust files + 13 fixtures + 16 snapshots) to
rtk-ai/rtk. This is our fork's only material divergence from upstream.Current state: Fork synced with upstream 0.30.0. Upstream
developat v0.31.0 with Copilot hooks, Gemini CLI, OpenClaw, emoji removal.Precedent: Upstream accepts large single-PR features — .NET support was 4,284 insertions (rtk-ai#172), Python/Go was 2,053 insertions (rtk-ai#88). No RFC needed.
Plan (Revised)
Phase 1: Fork alignment PR →
Faire/rtk:master✅PR: #22 (merged)
LimitsConfigalongsideGradleConfig_is_integrationparameteris_integration_test()andis_integration_task_name()Phase 2:
.rtk.tomlrepo-level config →rtk-ai/rtk:develop✅PR: rtk-ai#707 (draft)
RepoConfigstruct withhooks,filters,gradlesectionsfind_repo_config_from()walks up to.gitboundaryConfig::load_from_dir()merges user + repo configPhase 3: Gradle module → Graphite stack on
rtk-ai/rtk:developOne filter per PR, following upstream's scope rules. Tooling not enabled until 3j so no user-facing changes mid-stack.
feat/gradle-configfeat/gradle-coreinstadev-depfeat/gradle-compilefeat/gradle-testfeat/gradle-detektfeat/gradle-healthfeat/gradle-protofeat/gradle-depsfeat/gradle-batchfeat/gradle-discovergradle.tomlStack Structure
Notes
git commit -s)instacrate added as dev-dependency in 3b (flagged as open question for upstream maintainer)