feat: fixed coordination actions (replace free-text buzz reasons) - #3
Merged
Merged
Conversation
Flock carries a tiny, provider-defined action vocabulary rather than free-form chat. Senders choose an action; receivers reject anything that is not a known action instead of rendering arbitrary text. - New coordination module: check_in/on_my_way (group) + come_to_me/where_are_you/ call_me/on_my_way (direct), with fixed labels and exact (never fuzzy) reverse mapping + group/direct guards. - buzz: buildBuzzSignal takes a provider-defined action (check_in|on_my_way| ring_lost_phone) not a free-text reason; Buzz gains a stable action field and reason becomes a fixed compatibility label derived from the action. decryptBuzz drops payloads with an unknown action or a label that does not match its action (arbitrary prose, URLs, whitespace variants), while still migrating older exact-label payloads. - DEFAULT_BUZZ_REASONS now derives from the group action labels; the free-text 'Come home' preset is gone. Breaking (0.1.0 -> 0.2.0): consumers must send an action, not a reason. Narrows the user-to-user content surface (see the app's OSA illegal-content assessment). 532 tests pass.
check-extraction pins src/ by file count + digest to catch accidental drift. The fixed-action coordination change deliberately adds coordination.ts (+ test) and rewrites buzz.ts, so the enforced source fields advance 46->48 files and to the new digest. The frozen compatibility vectors (vectorSha256) are untouched. NOTE: sourceCommit/sourceGitTreeSha1 still name the original Flock extraction origin (2b8c3a7). Flock has since removed its local signal src/, so the provider now originates these changes rather than mirroring Flock — the extraction model needs an owner decision (informational fields only; not enforced by the guard).
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.
Phase 1 of removing free-form chat from Flock. Replaces the free-text buzz
reasonwith a fixed, provider-defined action vocabulary.What
coordinationmodule — the whole human-to-human vocabulary as stable actions with fixed labels:check_in,on_my_way(group) andcome_to_me,where_are_you,call_me,on_my_way(direct). Exact (never fuzzy) label→action mapping; group/direct guards.buzzrewritten —buildBuzzSignaltakes anaction, not areason;Buzzgains a stableaction;reasonis a fixed compatibility label derived from the action.decryptBuzzrejects unknown actions and mismatched labels — arbitrary prose/URLs/whitespace are dropped, not rendered. Older exact-label payloads still migrate.Breaking (0.1.0 → 0.2.0)
Consumers must send an
action. The app (Flock) repin + composer changes land in Phase 2.Transition note
Once receivers reject non-vocabulary text, buzzes from un-upgraded peers are silently dropped in mixed-version circles during rollout — inherent to removing free-form.
Tests
532 pass (new
coordination.test.ts;buzz.test.tsrewritten for the action model).