gossipcat 0.4.28 → 0.4.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/HANDBOOK.md CHANGED
@@ -136,6 +136,18 @@ A graduated skill (`status: 'passed'`) is NOT a permanent verdict. The drift det
136
136
 
137
137
  **Do not** add a Bonferroni correction to drift α. The graduation, drift, and fast-path tests operate on disjoint signal populations (anchored at `bound_at`/`inconclusive_at`, `passed_at`/`drift_strike_at`, and `regressed_from_passed_at` respectively). Sequential gates on different evidence pools each spend their own α=0.025 without leakage. See `docs/specs/2026-05-13-passed-skill-drift-detection.md` for the full statistical argument.
138
138
 
139
+ ### 12. Relay result must be passed verbatim — paraphrase silently drops `<agent_finding>` tags
140
+
141
+ When the orchestrator calls `gossip_relay(task_id, result)` after a native agent completes, the `result` value **must be the agent's raw output, unchanged.** If the orchestrator summarizes or paraphrases (e.g., `"HIGH — recordCreated lacks redaction"` instead of the full `<agent_finding>` block), the consensus engine's regex at `consensus-engine.ts:802` finds zero tags, the agent's findings are counted as zero, and the dashboard shows an empty native-agent column. Data loss is invisible — no error, no retry.
142
+
143
+ **Failure mode:** the bullet-parse fallback at `consensus-engine.ts:917-932` may partially recover prose summaries, but it loses citation data, severity grading, and confidence scores. Recovered bullets are unverifiable.
144
+
145
+ **Parser-side defense (PR #270):** `handleNativeRelay()` in `native-tasks.ts` detects zero tags on a consensus-dispatch relay and appends a `relay_findings_dropped` signal to `.gossip/relay-warnings.jsonl` plus a receipt warning in the `gossip_relay` response. This is detection, not prevention.
146
+
147
+ **Orchestrator-side rule (this invariant):** every dispatch banner and utility relay instruction now carries an explicit `(VERBATIM — pass the agent's raw output; do NOT paraphrase or summarize, or <agent_finding> tags will be lost)` qualifier on the `gossip_relay` step. Treat this line as a hard contract, not a hint.
148
+
149
+ **Related:** invariant #8 (`FINDING_TAG_SCHEMA` — parsers are strict). Consensus: `edbf8675-87b24107`.
150
+
139
151
  ---
140
152
 
141
153
  ## Operator playbook (for orchestrator LLMs)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gossipcat",
3
- "version": "0.4.28",
3
+ "version": "0.4.30",
4
4
  "description": "Multi-agent orchestration for Claude Code — parallel review, consensus, adaptive dispatch",
5
5
  "mcpName": "io.github.ataberk-xyz/gossipcat",
6
6
  "repository": {
@@ -55,7 +55,7 @@
55
55
  "@clack/prompts": "^1.1.0",
56
56
  "@modelcontextprotocol/sdk": "^1.27.1",
57
57
  "tsconfig-paths": "^4.2.0",
58
- "ws": "^8.19.0"
58
+ "ws": "^8.20.1"
59
59
  },
60
60
  "overrides": {
61
61
  "ip-address": "^10.1.1",