Skip to content

feat: fixed coordination actions (replace free-text buzz reasons) - #3

Merged
TheCryptoDonkey merged 2 commits into
mainfrom
feat/fixed-action-coordination
Jul 19, 2026
Merged

TheCryptoDonkey merged 2 commits into
mainfrom
feat/fixed-action-coordination

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

Phase 1 of removing free-form chat from Flock. Replaces the free-text buzz reason with a fixed, provider-defined action vocabulary.

What

  • New coordination module — the whole human-to-human vocabulary as stable actions with fixed labels: check_in, on_my_way (group) and come_to_me, where_are_you, call_me, on_my_way (direct). Exact (never fuzzy) label→action mapping; group/direct guards.
  • buzz rewritten — buildBuzzSignal takes an action, not a reason; Buzz gains a stable action; reason is a fixed compatibility label derived from the action. decryptBuzz rejects 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.ts rewritten for the action model).

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).
@TheCryptoDonkey
TheCryptoDonkey merged commit eb96ce0 into main Jul 19, 2026
1 check passed
@TheCryptoDonkey
TheCryptoDonkey deleted the feat/fixed-action-coordination branch July 19, 2026 16:57
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