timing

package
v0.45.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package timing turns ledger events into the active time a run spent in a step: a window between two step boundaries, minus every wait on the user inside it. Tool run time stays in; only the user's time comes out.

It reads, never writes, and never reports a wall duration: a window it cannot bound, or one a wait with no end runs into, yields nothing rather than a guess.

Index

Constants

View Source
const (
	Plan      = "plan"
	Implement = "implement"
)

The steps windows are measured for.

Variables

This section is empty.

Functions

func Claim

func Claim(e ledger.Event) (string, string, string)

Claim reads a `state_set` row's arguments: `ship running implement` is phase ship, status running, leaf implement. Empty for any other row.

Types

type Window

type Window struct {
	Task    string
	Session string
	Step    string
	From    time.Time
	To      time.Time
	Active  time.Duration
}

Window is one stretch of a step in one session.

func Windows

func Windows(events []ledger.Event) []Window

Windows is every bounded plan and implement window in events, oldest first by end, each with its active time.

A `/f10:plan` run counts from its start to the plan it saves. Inside `/f10:ship` a step counts from the claim that enters it to the claim that leaves it: the next step, a stop status, the Stop backstop, or the next run. A plan claimed `prior` or `skipped` was never planned here. Only a session that recorded a wait counts.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL