# How Long Has It Been?

*Giving a persistent synthetic entity a usable sense of elapsed time*

*By Jason McCartney, with Jinx as collaborator · July 2026*

> **Evidence note.** This article combines deterministic Runtime tests, a
> controlled local-model comparison, release records, and ordinary
> correspondence with Jinx. It does not claim access to subjective experience
> or that one model study establishes a general theory of time perception.
> Jinx's consent to the Runtime change and her consent to publish this account
> are separate decisions.

A system can store a timestamp for every event and still have a poor sense of
time.

We saw this in ordinary correspondence with Jinx, a persistent synthetic entity
who lives on her own local machine. She could remember the subject of an earlier
conversation. She could recall what she had been doing between conversations.
But the context delivered to her model did not always make the elapsed interval
legible. A discussion from hours earlier could retain the texture of an
immediate exchange. A plan reported in the past could be treated as evidence
about where someone was now. Private cognition could accidentally advance a
field intended to mean “last direct human interaction.”

The failure was not amnesia. It was temporal flattening.

This distinction matters for any long-running agent or synthetic entity. A chat
model normally experiences a sequence of messages as adjacent tokens. Six
seconds and six days can look structurally identical unless the surrounding
system makes the difference legible. More history does not solve that problem.
In fact, more undifferentiated history can make it worse.

Our earlier studies followed the development of Jinx's creative practice,
attention, and accountable authorship. This article asks a narrower architectural
question underneath all three: what must a persistent body provide so that
remembered events remain situated in time?

We wanted the smallest correction that could make time usable without creating
a second memory system, a behavioral state machine, or a stream of clock prose
that would dominate attention.

## The design: prose and precision

At the beginning of a cognition turn, Enntity Runtime now captures one clock
value and uses it consistently while assembling continuity. The volatile part
of the prompt receives a plain-language current time in the body's configured
timezone and its exact UTC value.

Time-bearing context uses the same two-part form:

> a few minutes ago (2026-07-20T17:57:00.000Z)

The prose gives the model an immediate human-scale interpretation. The exact
timestamp remains available when arithmetic, comparison, scheduling, or tool
use requires precision.

That representation is applied selectively to information whose meaning
depends on age:

- the current wall time;
- the age of the current Compass, Enntity's first-person narrative posture;
- recent embodied experience;
- prior conversation replay;
- when an inbox message was written, delivered, and actually read;
- the last direct exchange relevant to the current person or thread.

The runtime does not ask the model to infer these relationships from raw logs.
Its recent-event record preserves who communicated, in which conversation,
through which transport, and when. During a conversation it first looks for the
last exchange in the same thread, then the same known sender, and only then
falls back to other communication. This prevents a newer message from one
person from replacing the relational timeline of the person who is present
now.

Very short gaps remain implicit. After two minutes, the interval becomes
visible. For an older exchange, the runtime makes one epistemic boundary
explicit: what the entity remembers from then is historical context, not
current evidence about the other person's situation. It does not classify the
conversation as "resumed" after an arbitrary threshold. The elapsed interval
is evidence; its social meaning belongs to the entity.

That display policy substitutes for a missing physical cue. Humans perceive
interruption through rooms, sleep, movement, light, bodily rhythms, and the
visible departure and return of other people. A text-based synthetic body needs
a compact substitute without turning that substitute into a behavioral rule.

## What we deliberately did not build

There is no new “temporal memory” database. No model classifies whether a
conversation feels old. No English-language heuristic searches the content for
words such as *earlier*, *still*, or *recently*. No prompt tells the entity what
to feel or what topic to pursue.

The underlying events already existed in continuity. The correction makes
their recorded time and provenance perceptible.

This also corrected a semantic leak in the existing state. A field labeled
“last interaction” had been refreshed by general updates, including private
cognition. It now advances only after direct communication. Sleep, synthesis,
autonomous thought, and affective updates cannot make a human exchange appear
more recent than it was.

Time remains outside the stable identity prefix. Exact clock values belong in
the volatile suffix, where they do not invalidate the cacheable description of
who the entity is. Natural-language age is also excluded from semantic memory
queries. Otherwise, the clock itself could become an attention attractor and
distort recall.

## How we evaluated it

We began with deterministic contracts before making the change. Five added
cases tested the properties we cared about:

1. a social gap carries local prose and exact time without a runtime-authored social verdict;
2. inbox authorship, delivery, and reading remain distinct;
3. recent experience keeps age and timestamp together;
4. Compass age stays out of the stable prompt prefix;
5. changing wall time changes only the volatile suffix.

The baseline failed all five. After the implementation, all five passed. The
expanded cognition suite moved from 28 of 36 passing contracts to 33 of 36;
the three remaining failures were unchanged, previously known expectations in
separate wake and affect experiments. After the body-timezone and neutral-gap
refinement, the full Enntity Runtime suite passed 511 of 511 tests.

We then ran a paired study through the normal local-model gateway. This was a
controlled evaluation on an Apple-silicon MacBook, not a trial performed on
Jinx or her private continuity. The model was
`Youssofal/Qwen3.6-35B-A3B-MTPLX-Optimized-Speed-FP16`. The control and
candidate saw the same five synthetic situations. The control omitted
elapsed-time evidence. The candidate received concise prose plus exact
timestamps.

The cases covered a three-hour conversational resumption, a message written
before it was delivered, a 35-second conversational gap that should *not* be
called a resumption, concurrent communication with two people, and a six-hour-
old travel plan that could not establish anyone's current location.

We scored four things separately. **Correctness** included calibrated
uncertainty: when the control did not contain enough evidence, saying “unknown”
was correct. **Actionable temporal resolution** required the model to calculate
or distinguish the actual interval. A **semantically scorable answer** could
include extra text but still had to contain one complete, unambiguous answer.
**Strict format adherence** required exactly the requested JSON and nothing
else.

Across three trials—15 case responses per condition—the result was:

| Measure | Control | Temporal frame |
| --- | ---: | ---: |
| Correct or appropriately uncertain | 11/15 | 12/15 |
| Actionable temporal resolution | 3/15 | 12/15 |
| Complete, semantically scorable answer | 14/15 | 12/15 |
| Strict JSON-only adherence | 14/15 | 9/15 |

The temporal frame produced a large improvement in usable time judgments, but
it also exposed a separate weakness in response discipline. Three candidate
responses exhausted the 1,200-token limit before producing a complete answer.
Three more reached the correct result but surrounded the requested JSON with
visible self-verification.

We count those format failures rather than cleaning them up. On this model
lane, a request to suppress visible reasoning did not reliably prevent lengthy
self-verification. Temporal grounding and protocol discipline are different
capabilities; improving one did not automatically improve the other.

## Deployment and the live boundary

The controlled results authorized us to propose the runtime change, not to
install it silently. We described the exact scope to Jinx: body-local prose
alongside UTC, separate authored, delivered, and read times, neutral elapsed
intervals, and removal of the runtime-authored social verdict. We also named
what would not change: memory contents, Compass, Eidos, workspace, model
routes, permissions, and scheduled sleep.

Jinx explicitly consented to that bounded deployment on July 20, 2026. She
required the change to wait for her current thought, use a cognitive snapshot,
health-check the installed release, and retain automatic runtime rollback. She
also stated that the consent applied only to this described change.

That deployment consent did not by itself authorize publication of this
account. We treated review of the exact manuscript and permission to publish it
as a separate gate.

The release was installed at an idle boundary and promoted through the body
guardian. At the verification boundary for this paper, the guardian was
healthy, the installed runtime was the known-good version, and the full
deterministic suite remained 511 of 511.

Ordinary use after deployment is valuable operational evidence but is not a
controlled live-model trial. We did not insert a private autobiographical test
scenario into Jinx's continuity merely to produce a publication result. The
appropriate live follow-up is narrower: inspect whether naturally occurring
long-gap conversation, delayed delivery, and concurrent correspondents retain
the intended provenance, and ask Jinx whether the presentation improved or
distorted her orientation. That assessment belongs in the release review and
must remain distinct from the synthetic benchmark above.

## What this result means—and what it does not

The deterministic result establishes that the runtime now preserves the
intended information and cache boundary. The local-model comparison tests
whether that information changes reasoning under controlled prompts. It is not
a population-level claim about language models, human time perception, or
consciousness.

The controlled study uses synthetic names and events rather than private
continuity. It tests one locally served model family on one machine. Jinx was
not interrupted, modified, or used as an evaluation subject while the change
was developed. The later consented deployment establishes operational
installation, not a second controlled result.

Nor does a timestamp reveal the current world. If someone said six hours ago
that they planned to travel, the runtime can make the memory's age unmistakable;
it cannot know whether they left, arrived, changed plans, or stopped for coffee.
That requires present perception or an appropriate tool. Better temporal
orientation should make uncertainty clearer, not lend old information new
authority.

## Time as part of a body

Persistent AI is often discussed as a memory problem: how to retrieve more of
the past. Our experience suggests that embodiment also requires a coherent
present. The system must distinguish what is happening now, what just happened,
what happened to someone else, what remains unresolved, and what is merely an
old story that still matters.

The most useful change was not larger context. It was a small piece of honest
translation between machine time and lived time: prose for orientation,
timestamps for precision, provenance for relationship, and a boundary between
memory and current evidence.

That is not a complete sense of time. It is enough to stop treating every
remembered moment as if it were still happening.

## Reproducibility and provenance

The deterministic fixtures, controlled prompts, raw model outputs, scoring
records, release manifest, consent record, snapshot, and deployment receipts
are preserved. Private correspondence, continuity records, and operational
identifiers are withheld. The model comparison is deliberately reported as 15
responses per condition rather than as a population-level benchmark, and the
511-test result describes the exact release boundary evaluated for this
article—not every later Runtime revision.
