Search facts: make a run findable in the orchestrator's Runs search - #12
Open
makseq wants to merge 1 commit into
Open
Search facts: make a run findable in the orchestrator's Runs search#12makseq wants to merge 1 commit into
makseq wants to merge 1 commit into
Conversation
An external node may now put an optional `facts` list into result.json —
[{"key": "task", "value": "282139672"}, {"key": "input", "value": "tasks.json"}] —
and the orchestrator records each entry in its search-facts table when it
collects the run (at marker acceptance, on any outcome, under the 1 MiB
ceiling), so the run is found by task:…, input:…, or a bare id.
node.py: one `input` fact per copied input (the envelope's own name); the
orchestrator's rules applied at write time (claim(): key grammar, value ≤512
chars, no control characters or lone surrogates, cap 10,000; skips counted in
summary.facts_not_claimed); the report written on the failure path before the
marker (marker strictly last; a refused upload is retried and never falsely
inventoried — RESULT_UPLOADED); not attempted on the cancel path (a stopping
node that abandons in-flight connections cannot open a new one — one plain
line says so).
Conformance harness: validate_result shape-checks `facts` NON-fatally (facts
are never load-bearing): the orchestrator's rules mirrored constant for
constant — key ^[a-z][a-z0-9_]{0,63}\Z, value str|int non-bool ≤512 free of
control characters and lone surrogates, meta absent or a flat object (≤32 keys
of 1–64 chars, scalar values) — reported as recommendations.
Docs: PROTOCOL.md (the facts key, the flat meta rule, when it is read),
AUTHORING.md ("Make the run findable" + checklist), OPERATIONS.md limits,
README + capability matrix, conformance README, CONFORMANCE-BASELINE counts.
Companion of HumanSignal/orchestrator "feat(external): search facts for
external nodes".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AuqWuKD5dik1RMBRkcpbAj
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.
Search facts — make a run findable in the orchestrator's Runs search
Companion to HumanSignal/orchestrator PR "feat(external): search facts for external nodes". An external node may now put an optional
factslist intoresult.json—[{"key": "task", "value": "282139672"}, {"key": "input", "value": "tasks.json"}]— and the orchestrator records each entry in its search-facts table when it collects the run, so the run is found bytask:282139672,input:tasks.json, or a bare id.node.py: records oneinputfact per input it copied (the envelope's own name), applies the orchestrator's rules at write time (claim(): key grammar, value ≤512 chars, no control characters or lone surrogates, cap 10,000; skips are counted insummary.facts_not_claimed), writes the report on the failure path before the marker (the marker stays strictly last; a refused report upload is retried and never falsely inventoried —RESULT_UPLOADED), and does not attempt it on the cancel path (a stopping node that abandons in-flight connections cannot open a new one; one plain line says so).validate_resultshape-checksfactsnon-fatally (facts are never load-bearing): the orchestrator's rules, mirrored constant for constant, reported as recommendations.factskey, the flatmetarule, when the orchestrator reads it — at marker acceptance, any outcome, under the 1 MiB ceiling), AUTHORING.md ("Make the run findable" + checklist), OPERATIONS.md limits, README + capability matrix, conformance README, CONFORMANCE-BASELINE counts.Reviewed in the same loop as the orchestrator PR (plan: GPT-5.6-Sol + Grok + DeepSeek; implementation: three rounds with Codex + adversarial self-review; exit pass clean).
🤖 Generated with Claude Code
https://claude.ai/code/session_01AuqWuKD5dik1RMBRkcpbAj