Skip to content

Release: v2.1.0#219

Merged
themightychris merged 3 commits into
mainfrom
develop
Jul 1, 2026
Merged

Release: v2.1.0#219
themightychris merged 3 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

v2.1.0 adds Sheet.count(), a cheap record count that walks candidate paths without parsing any record, and fixes the gitsheets-axi home/sheets overview: record counts now render as bare numbers instead of quoted strings, and are counted via the cheap path rather than by loading every record in every sheet.

Improvements

  • feat(sheet): add Sheet.count() — cheap record count without parsing @themightychris
  • fix(axi): count via Sheet.count() + render record counts as numbers @themightychris

Technical

themightychris and others added 2 commits July 1, 2026 13:29
home/sheets in gitsheets-axi counted records via queryAll().length, which
loads and parses every record just to count them — slow on large sheets.
Add Sheet.count(filter?): with no filter (outside a transaction) it counts
candidate tree paths via recordQueryCandidates without parsing any record;
a value/function filter or a tx-bound sheet falls back to a body-less scan
that honors the filter. count() agrees with queryAll().length in all cases
(new sheet-count.test.ts). Documented in specs/api/sheet.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hr8McAaAQC9SPXrzvXejRd
Two bugs in the `home`/`sheets` overview:
- The records column used `computed('records', item => `${item.records}`)`,
  whose template literal stringified the count, so TOON quoted it ("2").
  Use `field('records')` so it renders as a bare number (2).
- countRecords loaded every record via queryAll to count them; switch to
  the new cheap Sheet.count(). No more full-sheet materialization on `home`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hr8McAaAQC9SPXrzvXejRd
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Author

Changelog

- feat(sheet): add Sheet.count() — cheap record count without parsing @themightychris
- fix(axi): count via Sheet.count() + render record counts as numbers @themightychris
- docs(skill): update gitsheets skill for the v2 Rust core @themightychris

- sheet-config.md: markdown normalization is now the native dprint formatter
  with a single `normalize = false` toggle; drop the removed
  `[gitsheet.format.markdownlint]` rule config. JSON-Schema validation is the
  Rust core's `jsonschema` (Draft-07, strict unknown-keyword rejection), not
  ajv; drop the "ajv extension" framing on `$data`.
- api.md: repo discovery is the Rust core (gix), attachment/diff blobs are
  gitsheets `BlobHandle` (not hologit `BlobObject`); add `Sheet.count()`.
- SKILL.md: note the Rust-core engine + prebuilt @gitsheets/core-napi addon,
  the Python binding, and the one-time canonical re-baseline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hr8McAaAQC9SPXrzvXejRd
@themightychris themightychris changed the title Release: v2.0.1 Release: v2.1.0 Jul 1, 2026
@themightychris
themightychris merged commit d3ee0fc into main Jul 1, 2026
6 checks passed
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.

1 participant