Skip to content

data_model: resync the vendored backend types - #238

Merged
max-tet merged 1 commit into
mainfrom
chore/clayde/resync-backend-types
Sep 17, 2026
Merged

max-tet merged 1 commit into
mainfrom
chore/clayde/resync-backend-types

Conversation

@ClaydeCode

Copy link
Copy Markdown
Contributor

Unblocks #237, and fixes the drift gate for everyone else on the way.

What

shard_core/data_model/backend is a byte-for-byte copy of freeshard-controller's data_model, checked by the Backend types drift check workflow. It has been red since at least 2026-08-17 — the last two runs on main that day both failed, and it has not run green there since.

The entire remaining difference is settings_model.py, from controller 0.27.0, which rebuilt settings as a key-by-cloud matrix: SettingsSpec as the single type authority, a flattened SettingSchemaEntry carrying ge/le directly, PER_CLOUD_KEYS, and the removal of the type column along with Setting.__int__/__bool__/__float__.

Generated with just get-types against freeshard-controller main at 28c8b32. No hand edits.

Why it is safe

  • Nothing in shard_core imports settings_model. Grepping shard_core/ and tests/ outside the vendored directory returns nothing, so this changes no behaviour.
  • The new annotated_types import resolves — it is a pydantic dependency, present in the lockfile already. Verified by importing the vendored module and reading SettingsSpec, SettingKey, SettingScope and validate_setting_value off it.

Note

I pulled the local freeshard-controller checkout before generating: it was 57 commits behind origin/main, and get-types copies from the working tree, so regenerating against a stale checkout would have vendored the wrong thing and looked like it worked.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VWEj4ivtnwGLef4hb5eFTm

The drift gate compares shard_core/data_model/backend against
freeshard-controller main byte for byte, and it has been red since at least
2026-08-17. Controller 0.27.0 rebuilt settings as a key-by-cloud matrix, which
is the whole of the remaining difference: SettingsSpec as the type authority,
the flattened schema entry, and the removal of the type column.

Generated by `just get-types`. Nothing in shard_core imports settings_model,
and annotated_types arrives with pydantic, so this only satisfies the gate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VWEj4ivtnwGLef4hb5eFTm
@ClaydeCode
ClaydeCode requested a review from max-tet September 17, 2026 10:35
@max-tet
max-tet merged commit ef954ae into main Sep 17, 2026
7 checks passed
@max-tet
max-tet deleted the chore/clayde/resync-backend-types branch September 17, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants