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

datatug / datatug-core / 41875600295
100%

Build:
DEFAULT BRANCH: main
Ran 04 Nov 2026 05:15PM UTC
Jobs 1
Files 311
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 05:14PM UTC coverage: 100.0%. Remained the same
41875600295

push

github

web-flow
feat(dataaccess): approval lifetimes and agent-session binding (Perimeter D29) (#451)

Perimeter D29 ([datatug/backstage#165](https://github.com/datatug/backstage/pull/165)): approval lifetimes and agent-session binding in `pkg/dataaccess`.

- `Grant.Lifetime`: `deadline` (also the meaning of an absent lifetime) or `session` (agent grants only). `once` is reserved and refused until DAS L4; its statement data (D30: key set, INSERT rows, new values, preconditions) attaches later as an optional object, so the shape grows without a break.
- `Grant.AgentSessionID` binds a `session` grant to one server-minted agent session; `AccessRequest.Lifetime` carries the requested lifetime.
- `Resolution.AgentSession{id, endsAt}` is the evaluator input: the live session the host authorized the agent's call under (never on a user's or a person's resolution).
- A session grant counts only in its own session and never past `endsAt`; any other session grant confers nothing, so standing and deadline access keep working without a session (D29 SQ-5). The lease digest binds the session ID when a grant uses it (not its moving idle end).

Tests: session binding and cap, ended/other/no session, stale grant, digest rollover, exact posture, validation. 100% coverage.

Review: two rounds, final APPROVE (Reviewed-Head: 39f8e310a).

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

Source commits:

- 0b763a7ca263 feat(dataaccess): approval lifetimes and agent-session binding (Perimeter D29)
  Grant.Lifetime (deadline | session; once reserved) and Grant.AgentSessionID;
  AccessRequest.Lifetime; Resolution.AgentSession as the evaluator input. A
  session grant counts only in its own live agent session, capped at the
  session's end; any other is BINDING_MISMATCH. The digest binds the session ID.
- 39f8e310ac5e fix(dataaccess): unbound session grants confer nothing; bind the session only when used
  Review of 0b763a7: a stale session grant no... (continued)

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

39024 of 39024 relevant lines covered (100.0%)

1.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 41875600295.1 04 Nov 2026 05:15PM UTC 311
100.0
GitHub Action Run
Source Files on build 41875600295
  • Tree
  • List 311
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6ab45129 on github
  • Prev Build on main (#41865888766)
  • Next Build on main (#41876887866)
  • 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