Skip to content

Harden deferred language surface (export trait, generics, idents, @policy) - #59

Merged
sujaydavalgi merged 3 commits into
mainfrom
feat/language-deferred-hardening
Jul 10, 2026
Merged

Harden deferred language surface (export trait, generics, idents, @policy)#59
sujaydavalgi merged 3 commits into
mainfrom
feat/language-deferred-hardening

Conversation

@sujaydavalgi

Copy link
Copy Markdown
Collaborator

Summary

  • export trait / public trait: traits export across modules for impl (private stays local); Rust + TS module registry.
  • Generics hardening (still Experimental): reject empty <>, duplicates, T: Bound, and where with clear errors.
  • Typed config/format idents: provider: mock and serialize(x, json) accepted alongside strings; runtime resolves bare format idents.
  • @policy(kind: "homeostasis") PoC: attribute form parses (Rust + TS); legacy homeostasis_policy kept with legacy_syntax + lint.

Also rebased onto main after #58 (follow(path:) clamp).

Test plan

  • cargo test -p spanda-core --test export_trait_generics
  • npx tsc --noEmit
  • CI Fast green
  • Spot-check: export trait cross-module impl; @policy(kind: "homeostasis") parse; bare provider: mock

Made with Cursor

…licy.

Allow export/public traits across modules, reject unsupported generic syntax,
accept bare provider/serialize format idents, and parse @Policy(kind: "homeostasis").
Parallel tests were racing on SPANDA_LIVE_* / *_CMD process env and
occasionally reading hub stubs instead of the live camera override.
@sujaydavalgi
sujaydavalgi merged commit 808d669 into main Jul 10, 2026
26 checks passed
@sujaydavalgi
sujaydavalgi deleted the feat/language-deferred-hardening branch July 10, 2026 16:36
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.

1 participant