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
+21
View File
@@ -10,6 +10,7 @@
#include "cst_ext.h"
#include "cst_mcp.h"
#include "cst_models.h"
#include "cst_parliament.h"
#include "cst_plugins.h"
#include "cst_provider_switch.h"
#include "cst_skills.h"
@@ -4682,6 +4683,26 @@ static void cmd_status(tui_t *t, char *arg, int *quit) {
notes && notes[0] ? "AGENTS.md loaded" : "(no AGENTS.md)");
push_system_line(t, " undo %d turn(s) can be undone",
cst_agent_undo_available(t->agent));
{
char *pst = cst_parliament_status_text();
if (pst && pst[0]) {
push_system_line(t, "Parliament / Realm:");
char *p = pst;
while (*p) {
char *nl = strchr(p, '\n');
if (nl)
*nl = 0;
if (p[0])
push_system_line(t, " %s", p);
if (!nl)
break;
p = nl + 1;
}
}
free(pst);
if (cst_parliament_is_active() && !cst_parliament_session_ok(NULL, 0))
push_system_line(t, " tip cst-agent --login (CST_REALM_PASSWORD)");
}
cst_usage_t u;
cst_agent_usage(t->agent, &u, NULL);
if (u.requests > 0 && u.prompt > 0)