Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6f7bc5b
Add Campfire hook installation and session restore
NishantJoshi00 Jun 10, 2026
41cee09
Address PR review: Campfire session-dir precedence and relay-error pr…
NishantJoshi00 Jun 14, 2026
e1b29c9
Add Campfire Vault detection regression tests
lawrencecchen Jun 17, 2026
157113b
Tighten Campfire Vault process detection
lawrencecchen Jun 17, 2026
560b157
Add Campfire notification and Vault regressions
lawrencecchen Jun 17, 2026
89217d7
Fix Campfire notification and Vault matching
lawrencecchen Jun 17, 2026
7dec4b2
Cover structured Campfire observer payloads
lawrencecchen Jun 17, 2026
b91caf0
Require Campfire argv cue for Vault fallback
lawrencecchen Jun 17, 2026
3252026
Cover non-Campfire packages session argv
lawrencecchen Jun 17, 2026
588ddb0
Use precise Campfire Vault entrypoint alternatives
lawrencecchen Jun 17, 2026
80ea88f
Cover mentioned Campfire entrypoint argv
lawrencecchen Jun 17, 2026
df1aa89
Constrain Campfire Vault alternates to runtimes
lawrencecchen Jun 17, 2026
277e915
Address Campfire autoreview policy findings
lawrencecchen Jun 17, 2026
38ac2a4
Fix Campfire runtime Vault restore executable
lawrencecchen Jun 17, 2026
b923a36
Gate Campfire Vault detection to hosts
lawrencecchen Jun 17, 2026
b2dc58e
Fix Campfire Bun argv restore
lawrencecchen Jun 17, 2026
84f1ba1
Merge remote-tracking branch 'origin/main' into review-pr-5813-campfi…
lawrencecchen Jun 17, 2026
1c706bd
Merge remote-tracking branch 'origin/main' into merge-main-into-campfire
NishantJoshi00 Jun 28, 2026
6e4a1f4
Add failing test for alternate-only Vault detect rule
NishantJoshi00 Jun 28, 2026
953ca20
Address PR review: detect-rule matching, ts-node host, capability fal…
NishantJoshi00 Jun 28, 2026
4fcaa04
Merge remote-tracking branch 'origin/main' into campfire-support
NishantJoshi00 Jul 4, 2026
be606fd
Merge remote-tracking branch 'origin/main' into autoreview-pr-5813-ca…
lawrencecchen Jul 4, 2026
952d8ab
Fix Campfire review blockers
lawrencecchen Jul 4, 2026
d35e8dc
Merge origin/main into campfire-support
lawrencecchen Jul 8, 2026
61fa87e
Restore ghostty and bonsplit submodule pointers to main
lawrencecchen Jul 8, 2026
f8dcae2
Revert unrelated renderer-realizer shim; scoped to main's implementation
lawrencecchen Jul 8, 2026
322610b
Drop PI_CODING_AGENT_SESSION_DIR from campfire resume environment
lawrencecchen Jul 8, 2026
6fea0b7
Recognize campfire script entrypoints under deno/tsx/ts-node hosts
lawrencecchen Jul 8, 2026
cd47acf
Refresh Swift file length budget for campfire growth
lawrencecchen Jul 8, 2026
653c5d9
Merge main into campfire support
lawrencecchen Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,7 @@ jobs:
CMUX_CLI_BIN="$CLI_BIN" python3 tests/test_claude_hook_push_notification.py
CMUX_CLI_BIN="$CLI_BIN" python3 tests/test_pi_extension_install.py
CMUX_CLI_BIN="$CLI_BIN" python3 tests/test_omp_extension_install.py
CMUX_CLI_BIN="$CLI_BIN" python3 tests/test_campfire_extension_install.py

tests:
name: tests
Expand Down
9 changes: 9 additions & 0 deletions CLI/CMUXCLI+AgentHookCatalog.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,15 @@ extension CMUXCLI {
hookMarker: "cmux hooks omp", format: .flat,
events: []
),
AgentHookDef(
name: "campfire", displayName: "Campfire", statusKey: "campfire",
configDir: ".campfire/agent", configFile: "extensions/cmux-campfire-session.ts",
createConfigDirIfMissing: true,
configDirResolver: { CMUXCLI.resolvedCampfireAgentDirectory().path },
sessionStoreSuffix: "campfire", disableEnvVar: "CMUX_CAMPFIRE_HOOKS_DISABLED",
hookMarker: "cmux hooks campfire", format: .flat,
events: []
),
AgentHookDef(
name: "amp", displayName: "Amp", statusKey: "amp",
configDir: ".config/amp", configFile: "plugins/cmux-session.ts",
Expand Down
6 changes: 5 additions & 1 deletion CLI/CMUXCLI+AgentHookPayload.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ extension CMUXCLI {
"event", "event_name", "hook_event_name", "hookEventName", "type", "kind", "notification_type", "matcher", "reason", "source", "terminationReason",
"title", "summary", "message", "body", "text", "prompt", "error", "codex_error_info", "codexErrorInfo",
"additional_details", "additionalDetails", "description",
"campfire_event_type", "campfireEventType", "display_name", "displayName", "capability",
] {
if let value = compactClaudeHookValue(object[key], key: key) {
compact[key] = value
Expand Down Expand Up @@ -124,6 +125,7 @@ extension CMUXCLI {
"assistantPreamble", "assistant_preamble", "user_message", "userMessage",
"title", "command", "description", "pattern_key", "patternKey",
"surface", "choice", "message", "body", "text", "prompt", "summary", "error",
"campfire_event_type", "campfireEventType", "display_name", "displayName", "capability",
] {
if let value = compactClaudeHookValue(extra[extraKey], key: extraKey) {
compactExtra[extraKey] = value
Expand All @@ -139,12 +141,14 @@ extension CMUXCLI {

private func claudeHookCompactFieldLimit(for key: String) -> Int {
switch key {
case "tool_name", "toolName", "turn_id", "turnId", "conversation_id", "conversationId", "event", "event_name", "hook_event_name", "hookEventName", "type", "kind", "notification_type", "matcher", "reason", "source":
case "tool_name", "toolName", "turn_id", "turnId", "conversation_id", "conversationId", "event", "event_name", "hook_event_name", "hookEventName", "type", "kind", "notification_type", "matcher", "reason", "source", "campfire_event_type", "campfireEventType", "capability":
return 80
case "transcript_path", "transcriptPath":
return 240
case "last_assistant_message", "lastAssistantMessage", "assistantPreamble", "assistant_preamble", "assistant_response", "assistantResponse", "title", "summary", "message", "body", "text", "prompt", "error", "codex_error_info", "codexErrorInfo", "additional_details", "additionalDetails", "description", "terminationReason", "user_message", "userMessage", "command":
return 240
case "display_name", "displayName":
return 120
default:
return 160
}
Expand Down
Loading
Loading