calendar
All repositories: gitoria
2.6 KB
\* hl:data — NEED EVALUATION, the one implementation every realm edge uses.A component's need is a member whose initializer calls a provider class(SPEC.md §9.2); the graph publishes each as { key, provider, method, args,project }. Evaluating one is: resolve the arguments against the caller'scontext — a folded constant, a route group's member, or a `session`field — call the provider method, and take the projected field. hl:web didthis per request and per push; hl:ipc does it per peer push. It lived inhl:web until the second edge existed (2026-09-01), which is when "shared"stopped being a word and became this plugin. *\\* Every need of one component, against the provider instances of the callingedge. One memo per evaluation: two needs fed by the same call cost ONE call. *\runNeeds(Hybrid needs \\ the graph's need list for the component&providers \\ class name → provider instance (the edge module's)¶ms \\ route groups; {} for a peer that matched no route&sdata \\ the session bag; {} for a peer with no session) {let out = {}let memo = {}for (need of needs) {out[need.key] = runNeed(&need, &providers, ¶ms, &sdata, &memo)}return out}\* One need: the value its MEMBER holds. `need.project` is the field taken offthe returned hybrid ("" = the member IS the return value). A provider readanswers for null arguments (the 074 contract), so an anonymous callerevaluates the same needs and simply sees nothing of anyone. *\runNeed(&need, &providers, ¶ms, &sdata, &memo) {let provider = providers[need.provider]if (provider == null) {return null}let args = []for (a of need.args) {if (a.group != null) {args[] = params[a.group]} else if (a.session != null) {if (a.session.length == 0) {args[] = sdata} else {args[] = sdata[a.session]}} else {args[] = a.value}}let ck = need.provider + "." + need.method + "(" + JSON.stringify(args) + ")"// a call that ANSWERED null is simply not memoized — repeating it is correctlet result = memo[ck]if (result == null) {result = callProvider(&provider, need.method, &args)memo[ck] = result}if (need.project.length == 0) {return result}if (result == null) {return null}return result[need.project]}// The provider call itself — the method name is DATA, so the call is computed.callProvider(&provider, method, &args) {if (args.length == 0) {return provider[method]()}if (args.length == 1) {return provider[method](args[0])}if (args.length == 2) {return provider[method](args[0], args[1])}return provider[method](args[0], args[1], args[2])}
Branches
- mainmain branch
Latest commits
- 99c73346antcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
- 76edaa62calendar: Hybriel master ff51cf46 (re-vendor round, static workaround removed)mre
- 90a3fc2cdeploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
- 6722b72ddeploy.sh: never send .git or .gitignore to Byrodinmre
- be099807State of 2026-09-27, before the move to gitoriamre