chron-mcp 0.1.6 → 0.1.7

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/dist/server.js CHANGED
@@ -9,7 +9,7 @@ const roleEnum = zod_1.z.enum(['user', 'assistant']);
9
9
  function createServer(db) {
10
10
  const server = new mcp_js_1.McpServer({
11
11
  name: 'chron',
12
- version: '0.1.6',
12
+ version: '0.1.7',
13
13
  });
14
14
  // @ts-expect-error — MCP SDK deep generic type instantiation limit hit; runtime types are correct
15
15
  server.tool('start_session', 'Create a new audit session or resume an existing one by title. Call this at the start of every conversation.', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chron-mcp",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "mcpName": "io.github.SirinivasK/chron",
5
5
  "description": "Audit-grade timestamped logs for every AI conversation",
6
6
  "repository": {
@@ -16,9 +16,9 @@ Call `get_session_history` for the returned `session_id`. If prior messages exis
16
16
  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.
17
17
 
18
18
  1. Call `log_message(session_id, role="user", content=<exact user message>)` → returns T1
19
- 2. Compose your response body (plain text only — no timestamp header)
19
+ 2. Compose your response body internally (plain text only — no timestamp header). **Do NOT output any text yet.**
20
20
  3. Call `log_message(session_id, role="assistant", content=<response body>)` → returns T2
21
- 4. Output header + body:
21
+ 4. Only now output the header + body — exactly once:
22
22
 
23
23
  ```
24
24
  [user: YYYY-MM-DD HH:MM:SS ±HH:MM | assistant: YYYY-MM-DD HH:MM:SS ±HH:MM]
@@ -26,6 +26,8 @@ The rule is simple: **any time you output text and wait for input, log it.** Thi
26
26
  <response body>
27
27
  ```
28
28
 
29
+ **Never output text before step 3.** Doing so causes the response to appear twice — once before the log call and once after. Compose fully in your head, log, then output.
30
+
29
31
  T1 and T2 are real server timestamps — T2 − T1 is the actual generation time. The DB stores clean body content without the header.
30
32
 
31
33
  **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."