Skip to content

Sync upstream dev into re-dev (2026-10-23): upstream's containment and identity names replace the fork's - #32

Merged
gedaiu merged 10 commits into
re-devfrom
sync/upstream-dev-2026-10-23b
Oct 23, 2026
Merged

gedaiu merged 10 commits into
re-devfrom
sync/upstream-dev-2026-10-23b

Conversation

@gedaiu

@gedaiu gedaiu commented Oct 23, 2026

Copy link
Copy Markdown

Brings re-dev up to upstream dev at 24029380: 9 commits, deeplethe#1266 (a token reads a document's extractions and exports its base), deeplethe#1327 (GitLab repo source, and one Ticket document for GitHub, Jira and GitLab), deeplethe#1333 (a statements source may declare its names identities), deeplethe#1334 (a regression case can expect no binding, migration 0118), deeplethe#1355 (scoped identity-provider sign-in), deeplethe#1381 (an empty balance during alignment fails the run once), deeplethe#1354 (a timed-out settings probe reads as timed out) and deeplethe#1391 (chat test trigger installed once). The dev mirror was fast-forwarded to upstream first.

This sync follows the rule that upstream dev holds the truth: where fork code conflicts with what upstream merged, upstream's version is taken and ours is dropped.

Removed in favour of upstream.

Behaviour changes.

  • Containment no longer reads entities.canonical_name; it starts from known_as facts. An entity created from a description is never paired by containment.
  • Migration 9002_containment_is_trigram_indexed.sql stays (it ran in production and the migrator refuses a missing one), but its trigram indexes are no longer used. Dropping them would be a later fork migration if wanted.
  • A pushed name is resolved like any other mention again (name vectors, containment) unless its source says otherwise. The embed_names job (Pushed statements: entity resolution does work it already knows the answer to deeplethe/utopia#1296, 9003) is kept.

Config step. To keep the old behaviour for re-cinq's mirror sources, set {"names": "identity"} in each statements source's config. Such a name attaches by exact name and gets no name vector.

Kept and unchanged: source decay (RC-003), the embed_names job, Google Drive, migrations 9000 to 9006, the token reads for fork-only routes.

Schema version 112. One upstream migration came in (0118); 112 migration files, CURRENT_SCHEMA_VERSION set to 112.

Checked on the merge: migrations ran twice on a fresh database, cargo fmt --all -- --check and cargo clippy --workspace --all-targets -- -D warnings are clean, UTOPIA_TEST_REQUIRE_DB=1 cargo test --workspace is green: 1741 passed, 0 failed, 6 ignored. web/src/docs/ingest.md conflicted, so the web checks ran: style guard, tsc --noEmit clean, vitest run 342 tests in 48 files.

🤖 Generated with Claude Code

gedaiu and others added 10 commits October 23, 2026 17:51
…e#1266)

Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…y the files that changed (deeplethe#1327) (deeplethe#1365)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…ins authoritative (deeplethe#1334)

* A regression case can expect no binding while a person's binding remains authoritative

Signed-off-by: Virtue039 <virtue039@qq.com>

* Let negative regression cases report conflicts without vetoing adoption

Signed-off-by: Virtue039 <virtue039@qq.com>

* Keep MCP test teardown from racing index background work

Signed-off-by: Virtue039 <virtue039@qq.com>

---------

Signed-off-by: Virtue039 <virtue039@qq.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…by exact name and computes no name vectors for them (deeplethe#1333)

* A statements source that declares its names identities attaches them by exact name and computes no name vectors for them

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>

* The identity record separates the class note from decision 6, and the may_attach comment is in Chinese

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>

---------

Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…min approved, so sign-in no longer stops at a consent page (deeplethe#1355) (deeplethe#1362)

* A deployment can ask its identity provider for only the scopes its admin approved, so sign-in no longer stops at a consent page (deeplethe#1355)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

* Keep each startup warning's doc comment on its own function, and say in 0069 that the domain list needs the email scope (deeplethe#1355)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

* Name the revising PR in 0069's status line (deeplethe#1355)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

---------

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…once instead of re-queueing it every few seconds (deeplethe#1381)

* An empty balance during phrase and kind-word alignment fails the run once instead of re-queueing it every few seconds (deeplethe#1360)

Signed-off-by: ShryukGrandhi <85529990+ShryukGrandhi@users.noreply.github.com>

* The candidates_for doc comment says an empty balance is the exception to the whole-list fallback

Signed-off-by: ShryukGrandhi <85529990+ShryukGrandhi@users.noreply.github.com>

---------

Signed-off-by: ShryukGrandhi <85529990+ShryukGrandhi@users.noreply.github.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
deeplethe#1354) (deeplethe#1373)

* A settings probe that runs out of time reads as timed out, not refused (deeplethe#1354)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

* A probe that hits the client's read timeout before the probe limit also reads as timed out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

---------

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…byte as before, so GitLab issues can use it too (deeplethe#1327) (deeplethe#1378)

* Record what every fixture ticket renders today, so moving GitHub and Jira onto one renderer can be checked byte for byte (deeplethe#1327)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

* GitHub and Jira tickets render through one Ticket document, byte for byte as before, so GitLab issues can use it too (deeplethe#1327)

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

* The ticket stamp imports sit with the other imports, and decision 0013's status names the Ticket document as built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Quintin Botes <quintinbotes@outlook.com>

---------

Signed-off-by: Quintin Botes <quintinbotes@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…ed once, so no test locks the messages table while another holds a row lock and reads it (deeplethe#1391)

Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: WaylandYang <145302500+WaylandYang@users.noreply.github.com>
…ntity names replace the fork's

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Bogdan Szabo <bogdan@re-cinq.com>
@gedaiu gedaiu closed this Oct 23, 2026
@gedaiu gedaiu reopened this Oct 23, 2026
@gedaiu
gedaiu merged commit 5cb8c05 into re-dev Oct 23, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants