Skip to content

Release v0.1.1 - #7

Merged
MPIsaac-Per merged 5 commits into
mainfrom
release/v0.1.1
Aug 5, 2026
Merged

Release v0.1.1#7
MPIsaac-Per merged 5 commits into
mainfrom
release/v0.1.1

Conversation

@MPIsaac-Per

Copy link
Copy Markdown
Owner

Point release: confirmed defect fixes from a full review of the Python and SQL surface, plus the regression tests that pin them.

Fixes

  • fpk scripts skip valid-JSON non-object lines instead of crashing (fpk_correlate) or silently truncating a file's counts (fpk_count).
  • fpk_tui --print works on Python builds without curses; month bucketing guards malformed timestamps.
  • Telemetry mart: zero-valued OTel attributes export as 0, safe_int/safe_float respect the sensitive-key list, cwd classification labels macos and recognizes Windows paths.
  • Archive catalog: empty min/max inputs no longer raise; an empty --latest-index is distinguished from an omitted one.
  • session_endings: a closing turn that both claims and verifies now lands in the verified bucket.
  • Field Manual queries 5 and 6: LEFT JOIN keeps sessions with no assistant turns; zero denominators guarded.
  • plausible_completion_candidates emits preview_is_full; the classifier prompt and rubric referenced it but every classification received null.
  • session_metrics.tool_calls_per_human_message and edit_to_read_ratio populated instead of NULL.
  • README lists all shipped analyses; schema comments match what the ingest populates.

Tests

Three new regression tests: tool_use → tool_result join content, stable row indexing when timestamps collide across files, and preview_is_full in the candidates view. 26 pass, coverage 95.43%, ruff/format/mypy/pip-audit clean.

Metric impact

Three changes can alter previously reported numbers: the session_endings bucket reorder moves claim-plus-verification endings out of the tool + completion bucket, the Field Manual LEFT JOIN adds assistant-less sessions to queries 5 and 6, and the two session_metrics ratios now carry values where prior runs had NULL.

🤖 Generated with Claude Code

mpiv-ai-temp and others added 5 commits August 5, 2026 09:02
- Skip valid-JSON non-dict JSONL lines in fpk_count and fpk_correlate
  instead of crashing or silently truncating a file's counts.
- Preserve zero-valued intValue/doubleValue OTel attributes instead of
  collapsing them to empty strings.
- Guard safe_int/safe_float with the same sensitive-key check as safe_str.
- Label /Users/ cwd values macos, and classify Windows paths.
- Return empty bounds instead of raising when an archive index yields no
  hive-partitioned blob names, and distinguish an empty --latest-index
  from an omitted one.
- Defer the curses import so fpk_tui --print works on Python builds
  without curses, and guard month bucketing against malformed timestamps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The existing tool_events assertion counted rows only, so a broken join
predicate still passed with NULL result columns. The fixture also had no
timestamp collisions, leaving the scan-order indexing fix untested.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
first_read_efficiency, search_share_vs_pgr, and tool_family_latency were
missing from the contents table and run list. METHODOLOGY still said five
analyses ship.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- session_endings: check claim + verification before the tool + completion
  branch so verified endings are never counted as unverified, and document
  the two smaller buckets in the header.
- field_manual_protocols: LEFT JOIN token_by_session so sessions with no
  assistant turns stay in queries 5 and 6, guard zero denominators with
  NULLIF, and drop the dead 'file_edit' family literal.
- plausible_completion_candidates: emit preview_is_full, which the audit
  rubric and classifier prompt already reference; every classification
  previously received null for it.
- session_metrics: populate tool_calls_per_human_message and
  edit_to_read_ratio instead of leaving the documented columns NULL.
- Schema comments now say the four tool_events distance columns and the
  environment tag are left NULL by the shipped ingest.
- cache_economics: state that cache-creation tokens are excluded from the
  cache-vs-fresh ratio.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MPIsaac-Per
MPIsaac-Per merged commit d128b11 into main Aug 5, 2026
6 checks passed
@MPIsaac-Per
MPIsaac-Per deleted the release/v0.1.1 branch August 5, 2026 14:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88cb088ee6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread schema/02_views.sql
a.*,
-- text_preview is substr(text, 1, 500), so the preview is the full turn
-- text whenever the turn fits in 500 chars. The audit rubric uses this.
(a.text_chars <= 500) AS preview_is_full,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Account for separators when flagging full previews

When an assistant turn has multiple text blocks, assistant_turns.text_preview is built with string_agg(..., ' ') and then truncated to 500 chars, so the synthetic separators also consume the preview budget. For candidates whose text blocks total <=500 chars but whose joined preview exceeds 500 after separators, this marks preview_is_full=true even though the CSV sent to the audit is truncated, which can cause the verifier to treat missing context as complete. Please base this on the actual joined preview length, or include the separator count in the length check.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants