feat(控制台): Console v2 P2 家族频道与人类模块 - #47
Merged
Merged
Conversation
Add overlay family channel.jsonl/acks with a paired signal event, line post/inbox/ack, next family_unacked, and the Console channel pane POST for operator decision/contract/ack. Keep P1 honesty and leave P3 closed. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
line post JSON now reports channel_kind so it does not collide with the control-plane envelope kind. Workspace POST still returns 405 unless the path is the family channel. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
Stop treating reserved operator membership as a reason to pick F(sender). Keep channel pairing asserts inside the overlay lock. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
Channel ids restart per family file, so msg_1 is not a cross-family key. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
Pairing counts signal.family, HTTP ack binds URL parent, and CLI line ack fail-closes when the same msg_N exists in more than one family. Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
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.
Summary
Console v2 P2 on top of P1 (
6a19554/ #45). Overlay family channel + human module. Version stays0.7.7. P3 artifact bytes are not implemented. This PR is left open for review and should not be merged by the agent.Store
.dyro/families/<parent>/channel.jsonlandacks.json.dyro/events.jsonlsignalevent withfacts.channel_idCHANNEL_LOG_INCONSISTENT); no fake broadcastoverlay_lock_signal_channel_idsonly countssignalrows whosefamilymatches the channel parent.msg_Nis per-family, not a workspace-global key.Visibility
F(P) = {P} ∪ direct children ∪ {operator}toempty) is visible to the whole family--tomust be inF(P)(FAMILY_TO_INVALIDotherwise)--to operatoruses the same default family as a broadcast (parentor sender).operatormembership is not a reason to pickF(sender).CLI (
dyro lineonly)line post LINE --kind KIND [--to] [--body] [--family]line inbox [--family P] [--unacked]line ack ID [--family P]line ack msg_Nfail-closes withCHANNEL_MESSAGE_AMBIGUOUSwhen that id exists in more than one family--dry-runand--format jsonon all three--yes(overlay confirm, not Git worktree)operator; operator may only postdecisionorcontractline post --format jsonuses envelopekind=line_postandchannel_kindfor the signal kind/dyro-line-familydoes not gain post/inbox/acknext/ control planefamily_unacked(count, highest-prioritykind,family, one safe summary)repair_requiredand does not block spawnnext.commandsnever containsline postorline ack --yesline inbox --unacked --format jsononlyConsole
fromalwaysoperatordecision|contract|ackonPOST /api/v1/workspaces/{alias}/families/{parent}/channelkind=ackis bound to URL{parent}and refuses a row that is not in that familyFAMILY_POST_FORBIDDEN--yes/ task-status from the pagesurfacesaddsfamiliesHow to try
In the channel pane, post a
decisionas operator and confirm asignalevent appears.Spec deviations
--familyonline postso an operator broadcast can nameF(P)when--tois omitted--familyonline ackwhen the samemsg_Nexists in more than one familyline post <line> --kind retract(original sender, or the family parent). Operator cannot postretract(onlydecision/contract)kind=line_post; the channel kind ischannel_kindReview follow-up
infer_post_familyno longer treatsoperatoras a member-of-sender reasonmsg_Npairing/ack/HTTP are family-scoped; collidingmsg_1inF(core)andF(core_pay)is pinnedF(core_shop)msg_1isCHANNEL_LOG_INCONSISTENTeven whenF(core)already has a pairedmsg_1Testing
Local:
tests.test_familiesandtests.test_cli.FamilyChannelCliTestsplus ruff. Ignore Vercel.