Repository navigation
v2.19.0 — Temporal API: upsert weight fix, now_ts, attrs/bucket-groups docs (specs 219-222)
v2.19.0 (2026-09-10)
Temporal API: specs 219-222 — four friction-report items
Full SpecKit pipeline (specify → clarify → plan → tasks → analyze → implement)
completed for all four specs. All tests pass: 7887 passed, 0 failures.
Spec 221 — upsert=True now updates weight (P1 bug fix)
One-character fix in TemporalIndex.cls:54: $Select(upsert: "skip", ...) →
$Select(upsert: "update", ...). Previously upsert=True silently discarded the new
weight when the edge key existed; callers had to offset timestamps by +1ms to avoid
the phantom. Now upsert=True writes the new weight and attrs (last-write-wins).
Known caveat: ^KG("tagg") bucket aggregates are not adjusted; use
get_edges_in_window() for exact per-edge statistics.
Spec 222 — find_burst_nodes now_ts + documentation
find_burst_nodes()gainsnow_ts: int = 0parameter (was missing from Python
wrapper; ObjectScript already supported it).get_edge_velocity()andfind_burst_nodes()docstrings documentnow_ts.- USER_GUIDE §Temporal Graph: new "Testing with historical fixture data" subsection
showing thenow_tspattern for fixture tests.
Spec 219 — get_edges_in_window attrs limitation documented (doc gap)
get_edges_in_window() docstring now states that edge attrs are not included in
results and documents get_edge_attrs(ts, s, p, o) as the companion API.
get_edge_attrs() also gains a proper docstring.
Spec 220 — get_bucket_groups no-target limitation documented (doc gap)
get_bucket_groups() docstring documents the absence of a target field (aggregates
are per (source, predicate) only) and shows the get_bucket_group_targets() +
get_edges_in_window() workaround pattern for per-target statistics.