Repository navigation
Fix/timestamps - #108
Merged
Merged
Fix/timestamps#108
Conversation
…meline Time awareness stored the effective (in-game) clock as unsigned milliseconds, so a frozen/ticking override set before 1970 (e.g. a companion living in 1508) was rejected by as_u64() and silently snapped back to the real system time. This threads i64 through the whole effective-time chain so negative (pre-epoch) in-game times are preserved end to end. - temporal: companion_effective_now, TimeOverride, TemporalRange, message and memory timestamp formatting and temporal-query parsing are signed; removed the .max(0) epoch clamps. - companion state: emotional/relationship/continuity timestamps, soul-growth validity fields and the typed time-override preference are i64. - storage: effective_at / observed_at and the scheduled-notes effective fields are signed on read, write and export/import; wall-clock and duration fields stay unsigned by design. - authored/baseline soul facts are timeless (ALWAYS_EFFECTIVE_FROM) so a past-set companion keeps its personality; the sentinel is JS-safe for the frontend round-trip. - memories are presented to the model oldest-to-newest by observed time. - frontend schema: allow negative effective timestamps (drop nonnegative).
The lorebook importer only understood the flat WorldInfo/SillyTavern shape,
so a file exported in Lettuce's own USC format ({schema, kind, payload}) fed
its envelope to that parser, which found no top-level `entries` and silently
imported a lorebook with zero entries. Even the entry field names differ
(keywords vs keys, title vs name, camelCase vs snake_case).
lorebook_import now detects the USC envelope (is_usc_value) and unwraps it via
the existing parse_usc_value, mapping the payload to the lorebook and its
entries directly (title, keywords, alwaysActive, caseSensitive, priority and
displayOrder preserved; ids regenerated to avoid collisions on re-import).
Non-USC input still takes the WorldInfo path unchanged. Adds regression tests
for both formats.
Extends the reasoning effort control beyond Low/Medium/High with two higher levels, X-High and Max, shown wherever a provider or local engine exposes effort-based reasoning (the effort value is forwarded verbatim, so whether a model honours the level is up to the provider). - schema: reasoningEffort enum gains "xhigh" and "max" - UI: both effort pickers (AdvancedModelSettingsForm dynamic + non-dynamic, EditModelPage) list the new levels; grids widen to six columns - i18n: en/de labels and descriptions for the new levels (other locales fall back to English) - controller + Rust resolve_reasoning_budget: default thinking budgets extended to xhigh 32768 and max 65536, kept in sync on both sides
Covers the 2.2.6 release: pre-1970 companion time, USC lorebook import, and the new X-High / Max reasoning effort levels.
MegalithOfficial
approved these changes
Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 2.2.6:
2.2.6 — Historical Companion Time & USC Lorebook Import
Released 2026-10-15
A companion's clock can now sit anywhere in history — freeze or tick it to a date before 1970 and it stays there instead of jumping back to today. Reasoning effort gains two higher levels, X-High and Max, and lorebooks exported in Lettuce's USC format import with their entries again.
Improvements
Bug Fixes