fix: parliament UX, prompt alignment, execution nudges (0.9.14)

Inject shared parliament context into the agent environment, switch
prompts away from in-process workers when parliament is active, clear
login tickets on chair sync/new-project, and surface realm/chair/service
in /status. Tighten empty-reply handling and prefer-tool principles.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WHC
2026-10-29 10:22:31 +08:00
co-authored by Cursor
parent be8d021480
commit 9c6257fc96
9 changed files with 207 additions and 40 deletions
+11
View File
@@ -55,6 +55,10 @@ int main(void) {
assert(m.chair_instance[0] == 0);
assert(!cst_parliament_session_ok(NULL, 0));
assert(cst_parliament_session_write("local-a") == 0);
/* Claim chair so session_ok matches. */
assert(cst_parliament_claim_chair("local-a", "dev") == 0);
assert(cst_parliament_session_ok(NULL, 0));
assert(cst_parliament_apply_sync(9, "parl-x", "proj-c", "chair-z",
"synced-body") == 0);
ctx = cst_parliament_context_get();
@@ -63,6 +67,13 @@ int main(void) {
assert(cst_parliament_load(&m) == 0);
assert(m.revision == 9);
assert(!strcmp(m.chair_instance, "chair-z"));
/* Remote chair takeover clears local login ticket. */
assert(!cst_parliament_session_ok(NULL, 0));
char *st = cst_parliament_status_text();
assert(st && strstr(st, "parliament"));
free(st);
assert(cst_parliament_is_active());
test_rmrf(dir);
puts("test_parliament: OK");