Retire the shared-drift gate — the copy it policed is being deleted - #10
Merged
Conversation
The gate existed because SmooAI/client-shared kept a byte-identical copy of shared/, and the two had silently diverged (client-shared served the pre-f230808 monogram, no inner 'S', no dot, and had lost the .input CSS family). An org-wide search found nothing imports client_shared::ui. Its only real consumer, the th CLI, builds features=["auth"] and all 39 of its imports are smooai_client_shared::auth — the design half was pure residue from an abandoned migration. So the duplicate is being deleted at the source rather than policed forever, and this gate goes with it. This lands FIRST, deliberately: the gate curls client-shared/shared/ from the contents API, so removing that directory while the gate still runs would red this repo's CI for no reason. Consumers are unaffected — smooblue and observability-studio keep depending on this crate exactly as they do today. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152bbE1veqfG1SVJdyLCBxC
|
brentrager
added a commit
to SmooAI/client-shared
that referenced
this pull request
Aug 26, 2026
This crate carried a byte-identical copy of SmooAI/ui's design system and described itself as that crate's successor. The migration was never finished, and an org-wide search found NOTHING importing `smooai_client_shared::ui` — the real design-system consumers (smooblue, observability-studio) depend on SmooAI/ui directly, and this crate's one consumer, the `th` CLI, builds `features = ["auth"]` and never touched it. Two copies of the same files is a drift surface, and it had already drifted: this crate spent weeks serving a monogram missing its inner 'S' and a styles.css that had lost the whole `.input` family, with nothing red. Deleting the copy removes the failure mode instead of detecting it. Removed: rust/src/ui/, shared/, rust/build.rs (it existed only to generate the tokens module), the serde_json build-dependency, the ../shared/** include entries, and the `ui` feature. `auth` is now the only feature and stays opt-in — it is what the one consumer asks for, and its tree (tokio, reqwest, axum) is heavy enough to be explicit about. Docs rewritten: lib.rs and README described a design-system crate. They now describe an auth library and point at SmooAI/ui for the design system. SmooAI/ui#10 removes the now-pointless shared-drift gate and lands first, so neither repo has a red window. Verified: cargo fmt --check, clippy (default + all-features, --all-targets -D warnings), cargo test --all-features (28 passed), check-module-tree. Claude-Session: https://claude.ai/code/session_0152bbE1veqfG1SVJdyLCBxC Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 1 of 2 resolving the
ui/client-sharedduplication (pearl th-596512). This one lands first on purpose.Why the gate is going away
It exists because
SmooAI/client-sharedkept a byte-identical copy ofshared/, and the two had already silently diverged — client-shared served the pre-f230808monogram (no inner 'S', no dot) and had lost the entire.inputCSS family, with nothing red.The fix chosen was to delete the duplicate rather than police it forever. An org-wide code search found nothing imports
client_shared::ui— the only hits are inside client-shared itself. Its one real consumer, thethCLI, buildsfeatures = ["auth"], and all 39 of its imports aresmooai_client_shared::auth. The design half was pure residue from a migration that was started and abandoned.Why this PR is first
The gate curls
client-shared/shared/from the GitHub contents API and diffs blob SHAs. Deleting that directory while the gate still runs would red this repo's CI for no reason. Removing the gate first means there is no red window in either repo.What changes
shared-driftjob.No consumer impact. smooblue and observability-studio keep depending on this crate exactly as they do today, and this repo becomes the single source of the design system.
Verified locally
Follow-up PR in
client-shareddeletesrust/src/ui/andshared/.🤖 Generated with Claude Code
https://claude.ai/code/session_0152bbE1veqfG1SVJdyLCBxC