chron-mcp 0.1.3 → 0.1.5

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/README.md CHANGED
@@ -75,7 +75,7 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o
75
75
  ### Claude Code
76
76
 
77
77
  ```bash
78
- claude mcp add chron npx -y chron-mcp
78
+ claude mcp add chron -- npx -y chron-mcp
79
79
  ```
80
80
 
81
81
  Then add the skill hook to `~/.claude/settings.json`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chron-mcp",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "mcpName": "io.github.SirinivasK/chron",
5
5
  "description": "Audit-grade timestamped logs for every AI conversation",
6
6
  "repository": {
@@ -13,7 +13,7 @@ Chron requires the MCP server to be running. If not yet configured:
13
13
 
14
14
  ```bash
15
15
  # Claude Code
16
- claude mcp add chron npx -y chron-mcp
16
+ claude mcp add chron -- npx -y chron-mcp
17
17
  ```
18
18
 
19
19
  For other tools, add to your MCP config:
@@ -37,6 +37,8 @@ Call `get_session_history` for the returned `session_id`. If prior messages exis
37
37
 
38
38
  ## Every Exchange
39
39
 
40
+ The rule is simple: **any time you output text and wait for input, log it.** This includes mid-task check-ins, not just clean user→assistant→user flows.
41
+
40
42
  1. Call `log_message(session_id, role="user", content=<exact user message>)` → returns T1
41
43
  2. Compose your response body (plain text only — no timestamp header)
42
44
  3. Call `log_message(session_id, role="assistant", content=<response body>)` → returns T2
@@ -50,6 +52,10 @@ Call `get_session_history` for the returned `session_id`. If prior messages exis
50
52
 
51
53
  T1 and T2 are real server timestamps — T2 − T1 is the actual generation time. The DB stores clean body content without the header.
52
54
 
55
+ **Mid-task check-ins follow the same rule.** If you pause mid-task and ask the user something ("I've done the analysis, what's next?" / "Which approach do you prefer?"), that pause is an exchange — log the assistant message before outputting it, log the user's reply when it arrives. Every turn that crosses the user boundary gets timestamped, regardless of whether the task is "complete."
56
+
57
+ **Permission grants** — if Claude pauses for a permission prompt and the user allows/denies, log a user message on resume: `"[permission: <tool> <action> — allowed/denied]"`. This is the only visible record of the interaction since permission clicks are not typed messages.
58
+
53
59
  **Do not use `log_exchange` for live conversations** — it captures both timestamps at the same instant and cannot show a real gap. Use it only for batch imports of historical messages.
54
60
 
55
61
  ## If Chron MCP is unavailable
@@ -11,6 +11,8 @@ Call `get_session_history` for the returned `session_id`. If prior messages exis
11
11
 
12
12
  ## Every Exchange
13
13
 
14
+ The rule is simple: **any time you output text and wait for input, log it.** This includes mid-task check-ins, not just clean user→assistant→user flows.
15
+
14
16
  1. Call `log_message(session_id, role="user", content=<exact user message>)` → returns T1
15
17
  2. Compose your response body (plain text only — no timestamp header)
16
18
  3. Call `log_message(session_id, role="assistant", content=<response body>)` → returns T2
@@ -24,6 +26,10 @@ Call `get_session_history` for the returned `session_id`. If prior messages exis
24
26
 
25
27
  T1 and T2 are real server timestamps — T2 − T1 is the actual generation time. The DB stores clean body content without the header.
26
28
 
29
+ **Mid-task check-ins follow the same rule.** If you pause mid-task and ask the user something ("I've done the analysis, what's next?" / "Which approach do you prefer?"), that pause is an exchange — log the assistant message before outputting it, log the user's reply when it arrives. Every turn that crosses the user boundary gets timestamped, regardless of whether the task is "complete."
30
+
31
+ **Permission grants** — if Claude pauses for a permission prompt and the user allows/denies, log a user message on resume: `"[permission: <tool> <action> — allowed/denied]"`. This is the only visible record of the interaction since permission clicks are not typed messages.
32
+
27
33
  **Do not use `log_exchange` for live conversations** — it captures both timestamps at the same instant and cannot show a real gap. Use it only for batch imports of historical messages.
28
34
 
29
35
  ## If Chron MCP is unavailable