Time and terminal context

While DataMind Oda works, it can receive two small readings about its own situation: a time reading with the current time, the request's time zone and how long has passed since the last step, and a terminal reading that names the tmux session, window and pane Oda's process runs in. Both readings are opt-in context for advanced setups. This page covers what each reading contains, when it is added, and the settings behind it.

What a reading is

The time reading

At each step Oda begins, it can add a reading in three lines:

text
Time sampled while preparing turn <turn>, step <step>: <timestamp>
Browser time zone for this request: <zone-policy>.
Elapsed since the preceding <baseline>: <duration-or-unavailable>.

Which time zone the reading uses

Each message can carry the time zone of the app or browser that sent it; Prompts, queue and steering covers that side. For one turn, Oda looks at the messages in it and classifies the zone:

The zone must be UTC or an IANA name in Area/Location form; another spelling is not used as the turn's zone. When the turn has no single zone of its own, the timestamp falls back to the configured timeZone, or to the zone of the computer running Oda when none is set. The fallback only formats the clock: the line still tells Oda to ask about dates and times that come without a zone, rather than to treat the fallback as something you stated.

Settings for the time reading

SettingDefaultWhat it does
timeZonethe computer's zoneThe zone that formats the timestamp when the turn has no single zone of its own.
refreshIntervalMs0The smallest gap between readings, in milliseconds. At 0, a reading is added at every step Oda begins.

The terminal reading

When Oda runs inside tmux, it can add a reading that names where its terminal sits. Oda takes one read-only look at tmux on the first step of a turn, and adds a reading only when the location has changed since the last one; a pane moved or resized mid-turn is reflected in the next turn. An unchanged location adds nothing.

text
tmux location (turn <turn>):
session <session>, window <index> "<name>", pane <index> <pane-id>
window active=<0|1>, pane active=<0|1>, layout <window-layout>

Settings for the terminal reading

SettingDefaultWhat it does
refreshIntervalMs0The smallest gap between readings, in milliseconds. At 0, a reading is added at each turn whose location changed.

Questions, answered

When does Oda add a time reading?

At each step Oda begins, unless the step is cancelled before it starts or a refreshIntervalMs interval is still running. With the default 0, a reading is added at every step.

Which time zone does the reading use?

The zone of the request when the turn's messages carry exactly one: the timestamp is formatted in it. When they carry several or none, the line lists them or reads unavailable and asks for clarification, and the timestamp itself is formatted in the fallback zone, the configured timeZone or the computer's zone when none is set.

What does unavailable mean in a reading?

A value with nothing to report: in the elapsed line it means there was no earlier point to measure from, and in the zone line it means the request carried no zone. It is not an error.

Does the time reading set the time zone for other tools?

No. The reading guides how Oda interprets dates and times in its answers. A tool that requires a zone still needs one stated, and the fallback zone is not treated as something you gave.

How often can readings repeat?

As often as every step, by default. A positive refreshIntervalMs sets the smallest gap between readings in one chat, so a reading that falls inside the interval is skipped.

Where do I change the readings' settings?

In the profile's configuration: timeZone and refreshIntervalMs for the time reading, and refreshIntervalMs for the terminal reading. These are advanced values; Command line and flags can print the configuration Oda will run.

When does Oda add a terminal reading?

On the first step of a turn, when Oda runs inside a tmux pane and the location has changed since the last reading. A pane moved or resized during a turn is reflected in the next turn.

Why does my terminal not count as tmux?

Oda counts as inside tmux only when its own terminal is the pane itself. A window started from tmux, such as an editor's integrated terminal, inherits tmux's settings but sits in a different terminal, so a reading adds nothing.

What happens when the tmux query fails?

The turn continues normally and no reading is added; Oda notes the warning tmux location query failed: <message>; injecting no location this turn. A failed look is not a failure of your task.

What does the terminal reading never capture?

Pixel sizes and what other panes show. The reading carries Oda's own location and the window's pane layout, nothing from around it.

Do readings stay in the chat?

Yes. A reading is context: it is kept with the chat, replays with it, and is condensed by compaction like other recorded material, rather than shown among the message rows. System prompt, context and compaction covers how the chat keeps such records.