Skip to content

Releases: laithalsaadoon/claude-sql

v2.1.1

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 20 Aug 15:27
v2.1.1
40d80c2

Fix

  • version: name a registry install instead of reporting source: ?
  • cluster: report a cluster count on the cache-hit path, not a row count (#178)

clusterrun_clustering's cache-hit path returned a row count under the
clusters key while the compute path returned a cluster count, so a warm
analyze reported 139054 messages, 80057 clusters against a parquet holding
1,080 real clusters. One helper now derives all three numbers for every cache-hit
branch, and the tests assert the two paths agree rather than pinning literals.

version — publishing to PyPI at v2.1.0 created an install shape
read_install_source could not express: it matched only directory / url /
git, and a registry install's uv receipt carries a specifier and none of
those, so claude-sql --version printed installed from source: ? for the most
common install of all. The kind is now inferred from the absence of a
local-source key.

Both fixes are locked by tests verified to fail against the prior code.

v2.1.0

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 20 Aug 00:56
9f79a2b

Feat

  • near-real-time snapshot refresh + watch daemon (#175)

Fix

  • settings: corpus-scope the analytics caches under corpora/<corpus_key>/ (#168)

Refactor

  • cleanup: drop dead ANALYTICS_VIEW_NAMES + fix stale core-package comments (#164)

Not in the auto-changelog

cz's filter surfaces feat / fix / refactor only, so the dependency work
in #176 is absent by design: 41 packages to latest (numpy 2.5.2, lancedb 0.37.1,
duckdb 1.5.5, strands-agents 1.52), eight Any-boundary type fixes surfaced by
ty 0.0.73, and the ruff 0.16.3 reformat.

For anyone embedding claude-sql in-process

  • snapshot_as_of(con) — the raw readers are DuckDB TEMP TABLEs, so a
    long-lived connection answers from a snapshot. This reports what instant that
    snapshot covers, letting a consumer distinguish "genuinely absent" from "newer
    than my snapshot" instead of substituting its own clock.
  • refresh_raw(con) — advances the snapshot by re-reading only the source
    files whose mtime moved: 0.22 s versus 6.2 s for a full re-registration over
    9,082 files. Reports rebuilt / rebuild_reason when it degrades.
  • claude-sql watch — a daemon that holds a warm connection and keeps it
    near-live as transcripts land. Install the new watch extra for OS-event
    change detection; without it the watcher polls an mtime scan.

v2.0.0

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 20 Jul 19:46
2f99c2f

BREAKING CHANGE

  • module paths moved from claude_sql.{core,analytics,app} to
    claude_sql.{domain,application,infrastructure,interfaces}; core is fully
    dissolved (Settings -> infrastructure.settings, models -> domain.models,
    provider ports -> domain.ports). Console script binds
    claude_sql.interfaces.cli.app:main. The evals and provenance planes are
    removed.

Feat

  • v2: hexagonal architecture — domain/application/infrastructure/interfaces (#159)

v1.2.1

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 08 Jul 14:58
61c63b3

Refactor

  • lance_store: migrate create_index to unified config API (#145)

v1.2.0

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 02 Jul 05:42
d1f091e

Fix

  • skills: skill_usage tool-source rows join to prior user intent (#50) (#131)
  • analytics: success_rate_by_work computes rates over known outcomes (#48) (#130)
  • analytics: autonomy_trend buckets by session start not classifier time (#49) (#129)

Docs

  • analytics_cookbook: note autonomy_trend buckets by session start (#53) (#133)
  • analytics_cookbook: explain community_id=-1 noise bucket and mutual-kNN plateau (#52) (#132)

Note: success_rate_by_work output changed from 5 to 7 columns (adds known_sessions, unknown_fraction; rates now over known outcomes). See the migration note in docs/analytics_cookbook.md §4.3 — hence the minor bump.

v1.1.9

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 21 Jun 14:38
9d09087

Perf

  • ingest: vectorize simhash64 bit-voting with numpy (#117)

v1.1.8

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 16 Jun 14:19
bcef680

Fix

  • conflicts: add conflicts_over_time macro for a real conversation-time axis (#110)

v1.1.7

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 15 Jun 16:54
ea6422b

Fix

  • conflicts: raise classify_max_tokens 2048 → 16000 to stop max_tokens truncation (#106)

v1.1.6

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 15 Jun 11:59
10f5591

Perf

  • session-text: format ts.isoformat() engine-side in the timeline loaders (#100)

v1.1.5

Choose a tag to compare

@laithalsaadoon laithalsaadoon released this 14 Jun 20:34
e6ad5a6

Perf

  • trajectory: JOIN the session-id window instead of binding a list param (#98)