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

datatug / datatug-cli / 41895212773
100%

Build:
DEFAULT BRANCH: main
Ran 04 Nov 2026 07:23PM UTC
Jobs 1
Files 702
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

04 Nov 2026 07:15PM UTC coverage: 99.998% (-0.001%) from 99.999%
41895212773

push

github

web-flow
feat(agent): agent sessions keyed by harness session (Perimeter D29) (#576)

Perimeter D29 agent sessions, CLI side.

- `datatug agent session start --harness <name> --harness-session <id> --agent-id ag-…`: the server mints a session; the credential is stored in the OS keyring (go-keyring, keyed by a digest of the harness session ID, with the agent, scope and API base URL); only the session ID is printed.
- Every agent call (`db get`, `db preview`, `access request --agent`) takes `--harness-session` or `DATATUG_HARNESS_SESSION`, sends `X-DataTug-Agent-Session`, refreshes near expiry, and never sends the credential to another base URL. A harness ID with no entry sends no session (standing access only).
- `agent session end` (the plugin's session-end hook) and `agent session status`; stale entries are pruned.
- `access request --agent --lifetime session|deadline`; without a session the request is "Until a deadline", with a note.
- The honest limit is stated in the help: binding scopes honest harness use, not a boundary against a shell agent of the same OS user.

Server: [datatug/backend](https://github.com/datatug/backend) branch perimeter-agent-sessions. Review: two adversarial rounds, final APPROVE (Reviewed-Head: c4a1d0716).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Source commits:

- 22c921ab936f feat(agent): agent sessions bind This-session approvals to a harness session
  Perimeter D29 (agent sessions), CLI half (test plan CL-7, CL-8, CL-10, CL-11).
  - `datatug agent session start --harness --harness-session --agent-id
  --space --project`: starts (or rejoins) the agent session, keeps
  {agentSessionId, credential, expiry, agent, space, project, base URL,
  auth issuer/realm} in the OS keyring (go-keyring, service datatug-cli,
  account agent-session:<sha256 of the harness session ID>). Prints the
  agent session ID, never the credential.
  - `datatug agent session end [--harness-session] [--r... (continued)

299 of 299 new or added lines in 5 files covered. (100.0%)

1 existing line in 1 file now uncovered.

94736 of 94738 relevant lines covered (100.0%)

1.01 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
99.79
-0.21% pkg/incidentstore/task3_store.go
Jobs
ID Job ID Ran Files Coverage
1 41895212773.1 04 Nov 2026 07:23PM UTC 702
100.0
GitHub Action Run
Source Files on build 41895212773
  • Tree
  • List 702
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a1fdbe0c on github
  • Prev Build on main (#41855311224)
  • Next Build on main (#42004383057)
  • 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