You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(tui): truncate session titles by chars, not bytes (v0.2.2)
Real-world panic reported on a Cyrillic prompt:
thread main panicked at session_list.rs:348:36:
end byte index 80 is not a char boundary; it is inside у (bytes 79..81)
The session title truncator was slicing the string by raw byte offset
(), which lands in the middle of any multi-byte UTF-8
character (Cyrillic, CJK, emoji). Replaced with a small helper that takes by Unicode scalars via chars().take(N).
Same fix applied to the fallback Session <id> path for consistency,
even though session_id is currently always ASCII (ULID).
Tests:
- truncate_ascii_under_limit_returns_input_as_is
- truncate_ascii_over_limit_appends_ellipsis
- truncate_cyrillic_does_not_panic_at_char_boundary ← regression
- truncate_emoji_counts_by_chars_not_bytes
- truncate_exact_length_no_ellipsis
Drive-by: also fix lingering clippy::doc_lazy_continuation in
classifier_eval.rs that was failing CI (test docstring).
Manifests: workspace + tj-cli + tj-mcp + plugin.json + marketplace.json
all bumped to 0.2.2 (patch).
Co-Authored-By: Claude <noreply@anthropic.com>
"description": "Append-only journal of AI-coding task reasoning chains. Captures hypotheses, decisions, rejections, evidence — renders compact resume packs so an agent can pick up a 2-week-old task with full context.",
Copy file name to clipboardExpand all lines: plugin/.claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "task-journal",
3
-
"version": "0.2.1",
3
+
"version": "0.2.2",
4
4
"description": "Append-only journal of AI-coding task reasoning chains: hypotheses, decisions, rejections, evidence. Renders compact resume packs so an agent can pick up a 2-week-old task with full context.",
Copy file name to clipboardExpand all lines: plugin/package.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "task-journal",
3
-
"version": "0.2.1",
3
+
"version": "0.2.2",
4
4
"description": "Append-only journal of AI-coding task reasoning chains. Captures hypotheses, decisions, rejections, evidence — renders compact resume packs so an agent can pick up a 2-week-old task with full context.",
0 commit comments