Skip to content

Commit 46adcb6

Browse files
houfuclaude
andcommitted
Use "Claude Cowork transcript" label for cowork HTML output
Add transcript_label parameter to generate_html() so the cowork command renders "Claude Cowork transcript" instead of "Claude Code transcript" in titles and headings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 3a45921 commit 46adcb6

4 files changed

Lines changed: 54 additions & 8 deletions

File tree

src/claude_code_transcripts/__init__.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,9 @@ def generate_index_pagination_html(total_pages):
13581358
return _macros.index_pagination(total_pages)
13591359

13601360

1361-
def generate_html(json_path, output_dir, github_repo=None):
1361+
def generate_html(
1362+
json_path, output_dir, github_repo=None, transcript_label="Claude Code"
1363+
):
13621364
output_dir = Path(output_dir)
13631365
output_dir.mkdir(exist_ok=True)
13641366

@@ -1441,6 +1443,7 @@ def generate_html(json_path, output_dir, github_repo=None):
14411443
total_pages=total_pages,
14421444
pagination_html=pagination_html,
14431445
messages_html="".join(messages_html),
1446+
transcript_label=transcript_label,
14441447
)
14451448
(output_dir / f"page-{page_num:03d}.html").write_text(
14461449
page_content, encoding="utf-8"
@@ -1525,6 +1528,7 @@ def generate_html(json_path, output_dir, github_repo=None):
15251528
total_commits=total_commits,
15261529
total_pages=total_pages,
15271530
index_items_html="".join(index_items),
1531+
transcript_label=transcript_label,
15281532
)
15291533
index_path = output_dir / "index.html"
15301534
index_path.write_text(index_content, encoding="utf-8")
@@ -1730,7 +1734,7 @@ def cowork_cmd(output, output_auto, gist, open_browser, limit):
17301734
output = Path(tempfile.gettempdir()) / f"claude-cowork-{session_file.stem}"
17311735

17321736
output = Path(output)
1733-
generate_html(session_file, output)
1737+
generate_html(session_file, output, transcript_label="Claude Cowork")
17341738

17351739
click.echo(f"Output: {output.resolve()}")
17361740

@@ -1928,7 +1932,9 @@ def format_session_for_display(session_data):
19281932
return f"{repo_display:30} {date_display:19} {title}"
19291933

19301934

1931-
def generate_html_from_session_data(session_data, output_dir, github_repo=None):
1935+
def generate_html_from_session_data(
1936+
session_data, output_dir, github_repo=None, transcript_label="Claude Code"
1937+
):
19321938
"""Generate HTML from session data dict (instead of file path)."""
19331939
output_dir = Path(output_dir)
19341940
output_dir.mkdir(exist_ok=True, parents=True)
@@ -2005,6 +2011,7 @@ def generate_html_from_session_data(session_data, output_dir, github_repo=None):
20052011
total_pages=total_pages,
20062012
pagination_html=pagination_html,
20072013
messages_html="".join(messages_html),
2014+
transcript_label=transcript_label,
20082015
)
20092016
(output_dir / f"page-{page_num:03d}.html").write_text(
20102017
page_content, encoding="utf-8"
@@ -2089,6 +2096,7 @@ def generate_html_from_session_data(session_data, output_dir, github_repo=None):
20892096
total_commits=total_commits,
20902097
total_pages=total_pages,
20912098
index_items_html="".join(index_items),
2099+
transcript_label=transcript_label,
20922100
)
20932101
index_path = output_dir / "index.html"
20942102
index_path.write_text(index_content, encoding="utf-8")

src/claude_code_transcripts/templates/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{% extends "base.html" %}
22

3-
{% block title %}Claude Code transcript - Index{% endblock %}
3+
{% block title %}{{ transcript_label }} transcript - Index{% endblock %}
44

55
{% block content %}
66
<div class="header-row">
7-
<h1>Claude Code transcript</h1>
7+
<h1>{{ transcript_label }} transcript</h1>
88
<div id="search-box">
99
<input type="text" id="search-input" placeholder="Search..." aria-label="Search transcripts">
1010
<button id="search-btn" type="button" aria-label="Search">

src/claude_code_transcripts/templates/page.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{% extends "base.html" %}
22

3-
{% block title %}Claude Code transcript - page {{ page_num }}{% endblock %}
3+
{% block title %}{{ transcript_label }} transcript - page {{ page_num }}{% endblock %}
44

55
{% block content %}
6-
<h1><a href="index.html" style="color: inherit; text-decoration: none;">Claude Code transcript</a> - page {{ page_num }}/{{ total_pages }}</h1>
6+
<h1><a href="index.html" style="color: inherit; text-decoration: none;">{{ transcript_label }} transcript</a> - page {{ page_num }}/{{ total_pages }}</h1>
77
{{ pagination_html|safe }}
88
{{ messages_html|safe }}
99
{{ pagination_html|safe }}

tests/test_cowork.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
import json
44
from pathlib import Path
5+
from unittest.mock import patch
56

67
import pytest
78

8-
from claude_code_transcripts import find_cowork_sessions, parse_session_file
9+
from click.testing import CliRunner
10+
11+
from claude_code_transcripts import cli, find_cowork_sessions, parse_session_file
912

1013

1114
def make_cowork_session(
@@ -171,3 +174,38 @@ def test_cowork_jsonl_parses_with_queue_operation(tmp_path):
171174
assert loglines[1]["type"] == "assistant"
172175
# Content should be correct
173176
assert loglines[0]["message"]["content"] == "Hello cowork"
177+
178+
179+
def test_cowork_command_passes_cowork_label(tmp_path):
180+
"""The cowork command passes transcript_label='Claude Cowork' to generate_html."""
181+
_, jsonl_file = make_cowork_session(
182+
tmp_path,
183+
process_name="test-process",
184+
cli_session_id="cli-label",
185+
title="Label Test",
186+
)
187+
output_dir = tmp_path / "output"
188+
session = {
189+
"title": "Label Test",
190+
"jsonl_path": jsonl_file,
191+
"folders": ["/test"],
192+
"mtime": 1700000000.0,
193+
}
194+
195+
runner = CliRunner()
196+
with (
197+
patch("claude_code_transcripts.find_cowork_sessions") as mock_find,
198+
patch("claude_code_transcripts.questionary") as mock_q,
199+
patch("claude_code_transcripts.generate_html") as mock_gen,
200+
):
201+
mock_find.return_value = [session]
202+
mock_q.select.return_value.ask.return_value = session
203+
result = runner.invoke(
204+
cli,
205+
["cowork", "-o", str(output_dir)],
206+
)
207+
208+
assert result.exit_code == 0, result.output
209+
mock_gen.assert_called_once()
210+
call_kwargs = mock_gen.call_args
211+
assert call_kwargs.kwargs.get("transcript_label") == "Claude Cowork"

0 commit comments

Comments
 (0)