Skip to content

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:33
· 347 commits to main since this release

Documentation

  • Knowledge-graph / graph-memory section in all seven READMEs, covering
    entities, typed relations, evidenced edges, triples, entity resolution and
    multi-hop traversal — including what sage-wiki does not do (temporal
    validity fields are stored but unqueried; there is no automatic
    contradiction detection).
  • README benchmark and eval summaries now report real measurements: the
    memory benchmarks (LOCOMO 92.0%, LongMemEval 93.3%, BEAM 0.691 with gpt-5
    judging) and the quality/perf eval (87.4% median across 10 real wikis).

Fixed

  • Both checkpoint readers retry transient Windows failures, via one shared
    helper. Fixing only the compile-state reader moved the CI failure to the
    batch-state reader — same test, same error, different path — so both now go
    through readStateFileRetrying and a test asserts it.
  • The transient-error predicate now matches the message Windows actually
    emits.
    ERROR_SHARING_VIOLATION reads "The process cannot access the file
    because it is being used by another process" — containing neither "sharing
    violation" nor "access is denied", and Go does not map it to
    fs.ErrPermission. The predicate checked only those, so the most common
    Windows contention error fell through as fatal in both the rename retry and
    the new read retry.
  • Postgres migration tests no longer depend on a pre-migrated database.
    TestMigrationV3/V4/V5 clone the base database and then simulate a
    downgrade, but did so before creating any schema — so they only passed
    against a long-lived developer database that had accumulated the schema
    from earlier runs, and failed on every fresh CI Postgres with
    relation "relations" does not exist. They now create the schema first.
  • CI: the Postgres job now creates the pgvector extension explicitly. It
    had never passed since being added — sage-wiki refuses to CREATE EXTENSION
    itself by design, and the image's initdb hook was not reliably creating it,
    so every pg test failed with "relation does not exist".
  • Compile-state reads now retry transient Windows file-sharing failures.
    The write half of this contract already retried (writeFileAtomicUnique via
    isTransientRenameError), but reads did not — so a concurrent writer
    holding the handle surfaced as "The process cannot access the file because
    it is being used by another process" and aborted the caller outright. Same
    family as the v0.2.2 manifest-lock fix, different code path; present in
    v0.2.2 and earlier, not a regression.