diff --git a/README.md b/README.md
index f274634..e233b13 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,10 @@ Every agentic session leaves a JSONL trail. Endless possibilities inside each ex
- You reach back through a **local dashboard** — timelines, plan versions, and milestones, all in your browser at `localhost:3737`.
- **Nothing leaves your machine.** No telemetry, no cloud sync; optional AI agents use your own API key.
+
+
+
+
## How Keddy Works
diff --git a/package.json b/package.json
index 3c25c24..f5e7869 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "keddy",
- "version": "0.1.0",
- "description": "Session intelligence for Claude Code — navigable timelines, plan tracking, and past session search",
+ "version": "0.1.1",
+ "description": "Session intelligence for your coding agent.",
"license": "Apache-2.0",
"author": {
"name": "Emir Enes Aksay",
@@ -9,10 +9,10 @@
},
"repository": {
"type": "git",
- "url": "git+https://github.com/emireaksay-8867/keddy.git"
+ "url": "git+https://github.com/emiraksay/keddy.git"
},
- "homepage": "https://github.com/emireaksay-8867/keddy#readme",
- "bugs": "https://github.com/emireaksay-8867/keddy/issues",
+ "homepage": "https://github.com/emiraksay/keddy#readme",
+ "bugs": "https://github.com/emiraksay/keddy/issues",
"keywords": [
"claude-code",
"session-intelligence",
diff --git a/tests/parser-advanced.test.ts b/tests/parser-advanced.test.ts
index 3d4ef00..1f9c85b 100644
--- a/tests/parser-advanced.test.ts
+++ b/tests/parser-advanced.test.ts
@@ -87,8 +87,9 @@ describe("parseTranscript — multi-turn assistant text accumulation", () => {
expect(result.exchanges.length).toBe(1);
const exchange = result.exchanges[0];
- // Should contain text from ALL three assistant messages
- expect(exchange.assistant_response).toContain("Let me look at the login code first");
+ // Text before the first tool call lands in assistant_response_pre;
+ // text after tool calls lands in assistant_response.
+ expect(exchange.assistant_response_pre).toContain("Let me look at the login code first");
expect(exchange.assistant_response).toContain("I see the issue");
expect(exchange.assistant_response).toContain("login function has been fixed");
});
diff --git a/tests/parser.test.ts b/tests/parser.test.ts
index a793627..cb6a404 100644
--- a/tests/parser.test.ts
+++ b/tests/parser.test.ts
@@ -300,7 +300,7 @@ describe("split content blocks (real Claude Code format)", () => {
expect(result.exchanges[0].tool_calls.length).toBe(2);
expect(result.exchanges[0].tool_calls[0].name).toBe("Read");
expect(result.exchanges[0].tool_calls[1].name).toBe("Read");
- expect(result.exchanges[0].assistant_response).toContain("I'll read the file");
+ expect(result.exchanges[0].assistant_response_pre).toContain("I'll read the file");
expect(result.exchanges[0].assistant_response).toContain("The project has two files");
});
@@ -314,9 +314,11 @@ describe("split content blocks (real Claude Code format)", () => {
it("should accumulate all text across split assistant entries", () => {
const result = parseTranscript(join(FIXTURES, "sample-split-blocks.jsonl"));
- // Exchange 0 has text from TWO separate assistant entries (line 4 + line 9)
+ // Exchange 0 has text from TWO separate assistant entries (line 4 + line 9).
+ // Pre-tool text lands in assistant_response_pre; post-tool text lands in assistant_response.
+ const pre = result.exchanges[0].assistant_response_pre;
const resp = result.exchanges[0].assistant_response;
- expect(resp).toContain("I'll read the file");
+ expect(pre).toContain("I'll read the file");
expect(resp).toContain("index.ts");
expect(resp).toContain("utils.ts");
});