Skip to content

feat: exfa/compute@1 envelope, groups, packages, workspaces + equipment ids - #1

Merged
elwina merged 1 commit into
mainfrom
feat/compute-group-package
Oct 8, 2026
Merged

elwina merged 1 commit into
mainfrom
feat/compute-group-package

Conversation

@elwina

@elwina elwina commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

docs/27 §5.2–5.4 — the host-side document layer of the unified compute design. The engine stays workspace/group-agnostic; Format owns fit-plan/group/workspace/package documents and lowers them into exfa/compute@1 requests.

  • computeRequest() — resolved fit → exfa/compute@1 calc envelope
  • compileGroup() — group actors + directed relations → ONE operation=batch request (project → projected[kind=fit] with strict-whitelist select; command → fleet.booster_fits; deep-cloned per target; issues not throws)
  • packageFit/packageGroup/mergePackage — transitive dependency closure + rename/replace/skip merge
  • stable id? on module/drone/fighter/cargo items (drives select); Library.groups; library-index + groups/*.json files
  • schemas + fixtures + TS (32 tests) / Rust (9 tests) parity; version 1.1.0

Test plan

  • npm test 32/32, npm run build, npm run schema-validate
  • cargo test 9/9
  • CI

Generated with Devin

…nt ids

docs/27 §5: the engine stays workspace/group-agnostic and consumes a single
compute media; Format owns the host-side documents and the compiler that lowers
them into compute requests.

- types: stable id? on FitModule/FitDrone/FitFighter/FitCargo; Group/GroupActor/
  GroupRelation ('project' | 'command', source_item_ids, targets, amount,
  distance_m, enabled); Package (dependency-closure export); Workspace;
  Library.groups (required, {} default).
- resolve: id passthrough into emitted FitRequest items.
- compute.ts: computeRequest() wraps resolveFit into exfa/compute@1 calc.
- group.ts: compileGroup() -> one batch request; project -> projected[]
  {kind:fit, select} (strict whitelist, deep-cloned per target), command ->
  fleet.booster_fits; issues for missing actors/targets/unknown item ids.
- package.ts: packageFit/packageGroup transitive dependency closure;
  mergePackage with rename/replace/skip + reference remapping.
- files: library-index gains groups (authoritative) + groups/<id>.json files.
- schemas: group/package/workspace/compute + fit-document id + library(-index)
  groups + vendored fit-request id/select. Versions -> 1.1.0.

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@elwina
elwina merged commit c191f3a into main Oct 8, 2026
2 checks passed
@elwina
elwina deleted the feat/compute-group-package branch October 8, 2026 10:17
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