Let a duration end "now", while it is ongoing (#537, stage 1)
Free, open-source timeline editor for exact dates at any scale.
Brought to you by:
athanclark
Originally created by: athanclark
Stage 1 of [#537]: ongoing durations in the core model and the browser.
{"ongoing": true}, meaning the current time. A start cannot be ongoing.resolveDuration(duration, timeOf, now) gives an ongoing end as max(start, now). Without now it gives a point at the start: the placeholder the persisted trees will hold.TimelineIndex keeps ongoing durations beside its interval tree and resolves them at its clock for each frame. withOngoing and summariesWithOngoing merge them into the window's longest-first ranking, its counts and its collapsed summaries, so the result matches what the tree would give if it could hold them. The server will reuse both in stage 2.test/ongoing-durations.test.mjs covers validation, the "now" mapping, resolution, frames growing with the clock, collapsed summaries, and merging with truncation.npm test passes apart from contents.test.mjs, which fails locally with git ENOBUFS from untracked worktrees. CI runs it cleanly.och-convert. Until then, saving an ongoing duration to a desktop .och file is not supported.🤖 Generated with Claude Code
Ticket changed by: athanclark