feat: parliament seat collaboration loop (0.9.19)

Seats publish via parliament_note, sync pushes on write, member join without
stealing the chair, and worker tools are hard-gated when parliament is active.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WHC
2026-10-29 11:29:38 +08:00
co-authored by Cursor
parent 1605d74f17
commit 812e3ee265
15 changed files with 532 additions and 83 deletions
+3 -3
View File
@@ -138,11 +138,11 @@ int main(void) {
}
cJSON *all = cst_tools_schema_cfg(&cfg);
/* Every tool the host can actually run is offered in the default profile;
* one whose platform probe fails (the clipboard without a helper) is not. */
/* Every tool active for this config is offered; platform-unavailable tools
* and mode-gated tools (e.g. parliament_note outside parliament) are not. */
int usable = 0;
for (int i = 0; i < cst_tool_count(); i++)
if (cst_tool_available(cst_tool_at(i), NULL, 0) == 0)
if (cst_tool_active(&cfg, cst_tool_at(i)))
usable++;
EXPECT(cJSON_GetArraySize(all) == usable, "default: every usable tool");
EXPECT(schema_has(all, "edit_file") && schema_has(all, "grep") &&