// 33international · pr #13

Time tracking that survives being disbelieved.

A replacement for Time Doctor: one button on the Jira ticket, a CLI, and an MCP server agents drive themselves. Every number below came out of the real service running behind this page.

The work is invented. The machinery is not — sessions were seeded by feeding minute-by-minute heartbeats through the same ledger that decides what a contractor gets paid.

01 — the work diary

What the service says

Live from /v1/report/summary and /v1/report/sessions on . If this errors, it says so — the old dashboard used to fabricate a plausible week whenever the API failed, which is the habit this rebuild exists to break.

Loading…

By ticket

By source

Agent time is tagged separately at the point it is earned, so it can be priced or excluded later without going back through the records.

Sessions

02 — in jira

One entry that grows while you work

The old extension posted a fresh worklog every ten minutes — about 48 a day, 240 per ticket-week. This posts once and then updates the same entry, so the ticket shows a timer rather than a wall of noise. Progress notes accumulate inside its comment instead of becoming a comment each.

DC Demo Contractor logged updated a moment ago

Rendered from the ADF the real comment builder produced. The [33t #…] marker is how a timed-out create is recognised on retry instead of being logged twice — and how reconciliation knows to leave hand-logged entries alone.

03 — on the ticket

The button

Injected on Jira issue pages. It reads the key from the URL, so it survives Jira renaming its own class names. Press it — these are the three states it has.

Nothing running

Tracking this ticket

NAM-51 has been running for 2h 15m

Something else is running

It never silently stops a timer you might be relying on. Switching is always something you chose.

04 — from a terminal

And without a browser

$ 33t start NAM-51
 NAM-49 has been running for 1h 12m.
  33t start NAM-51 --switch   to stop it and start this one

$ 33t start NAM-51 --switch
⏹ NAM-49  1h 12m logged
▶ NAM-51  0m

$ 33t note "absolute-total PUTs so a missed flush self-heals"
✓ noted on NAM-51

$ 33t status
▶ NAM-51  34m  worklog projector
  • absolute-total PUTs so a missed flush self-heals

The same API backs an MCP server, so an agent can run its own timer and append what it did. No tool it can call accepts a duration, a timestamp or a worklog id — it can describe work, but only elapsed wall clock bills for it.

05 — what it will not claim

The number that used to be a lie

Every old worklog read 0 keystrokes · 0 clicks · 0% active, because the counter only saw three domains and none of them were an IDE. That percentage is removed rather than fixed. What replaces it is evidence anyone can check: commits, files touched, agent tool calls, idle minutes, and which client earned the time.

A sleeping laptop credits nothing, because its active counter did not move.

A client offline for thirty minutes recovers at most thirty minutes, whatever its journal claims.

A Jira outage costs a delay. Time is committed locally before Jira is ever told.

Edit an entry by hand and it stays edited — the tracker detaches rather than overwriting you.

!

The CLI bills declared time, not observed time. A terminal cannot see a keyboard, and the design doc says so rather than implying otherwise.