• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

datatug / datatug-cli / 38851712648
100%

Build:
DEFAULT BRANCH: main
Ran 16 Oct 2026 04:47AM UTC
Jobs 1
Files 522
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Oct 2026 04:39AM UTC coverage: 99.998%. Remained the same
38851712648

push

github

web-flow
feat(query): write query run results to private files with --result-id (#409)

`datatug query run --result-id <id>` writes the result to private files instead of printing rows, for viewers (the Claude Code mod card, the web UI, the terminal UI) that need typed rows and metadata without the rows ever passing through a model's tool output.

What it adds:

- `pkg/queryresults`: the store at `~/.datatug/query-results` (fixed root, no environment override). Directories 0700 and files 0600, a symlinked root or result directory, another owner, and a root inside a Git working tree or bare repository are refused. `<id>` is created with `mkdir`, and `data.json` and then `meta.json` are each written as an O_EXCL temporary file, synced and renamed. Locate, prune (7 days, 200 results, 512 MiB, incomplete over 1 hour) and remove, never following a link. Every error is a reason code with no path and no id.
- The collector: reads at most `--result-rows` + 1 records (default 2000, 1..10000), keeps integers exact, cuts a cell at 64 KiB on a UTF-8 boundary, keeps `data.json` within 4,000,000 bytes, encodes binary and nested values with a column `encoding`, and turns a mixed-kind column into strings with `observedTypes`.
- `meta.json`: identity, `db` (the full `datatug://` reference of a registered project's source, else null), `query` (kind, DTQL text or the `--from` equivalent, saved id and type, typed parameters, policy mode), `rows`, `provenance` (mode and time, never a URL), and `columns`. Size bounds apply. It holds no row value, connection string, path or policy path.
- `query run`: `--result-id` and `--result-rows` on the ad-hoc and the saved form. The store is checked before the database is opened. stdout gets one path-free locator line, or `{"resultFiles":null,"reason":…}` on failure, and a failed run removes its directory. `query run` now refuses positional arguments.
- `query results locate|check|prune|rm`.
- `pkg/gitpath`: the Git working-tree and bare-repos... (continued)

66483 of 66484 relevant lines covered (100.0%)

1.01 hits per line

Jobs
ID Job ID Ran Files Coverage
1 38851712648.1 16 Oct 2026 04:47AM UTC 522
100.0
GitHub Action Run
Source Files on build 38851712648
  • Tree
  • List 522
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a57ada36 on github
  • Prev Build on main (#38841792993)
  • Next Build on main (#38853822208)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc