One edition: the last enterprise gates come out of shared code (SPEC 2.3)

Every one of the 14 was `#[cfg(not(feature = "enterprise"))]` on the arm the
fork always compiles: the Enterprise arms went with the import, and nothing
turns the feature on. Removing the attribute leaves the same code, now
unconditional, in 11 files.

Two of them looked like behavior worth checking before touching: the
`validate_tenant_quota` stub that always passes, and the refusal to cancel a
pending DestroyAccount task. The stub is vestigial — the rebuilt
multi-tenancy enforces quotas in `crates/features/src/tenancy/quota.rs` for
those objects and more — and the refusal is undelete's open question, which
this change leaves exactly as it was.

The binary builds with no new warnings, and `system_tests` and `jmap_tests`,
which cover the touched registry, task-manager and auth paths, both pass.
The feature definitions stay in the manifests, inert: taking them out would
widen every sync's diff for nothing.
This commit is contained in:
2026-09-19 17:44:20 -07:00
parent dac1808bbd
commit 29d9263071
12 changed files with 7 additions and 15 deletions
+7 -1
View File
@@ -178,7 +178,13 @@ checks already are: 30 checks across 18 files at the commit above. That keeps
each sync's conflicts few and predictable.
The `enterprise` Cargo feature and every edition check are removed. There is
one edition.
one edition. Done for the code on 2026-09-19: the last 14 gates, all of them
`#[cfg(not(feature = "enterprise"))]` on the path the fork always takes, came
off across 11 files, and no `is_enterprise_edition()` check survived the
import. The feature's *definitions* stay in the manifests, inert now that
nothing turns them on and nothing reads them, because removing them would
widen every sync's diff for no gain (§2.2). An import that changes a gated
file brings its gates back in the merge; they come off again with it.
One exception: scale-out storage lives in new AGPL files inside
`crates/store` (`backend/scaleout/`), because the rebuilt-features crate