Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

v2: sessions with path=NULL (around v1's add_session_path schema change) are missing from project session lists

Aperta Adatta ai principianti
#51,144 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
backend, database

Direzione di ricerca

Inizia da packages/core/src/session/store.ts intorno alla riga 108 e confronta il filtro relativo al progetto con packages/opencode/src/session/session.ts intorno alle righe 970-976. Verifica come SessionStore.list gestisce un sottopercorso radice e riproduci la query sulle righe in cui path IS NULL. Il lavoro è completato quando le sessioni radice attribuite correttamente compaiono nell’elenco del progetto senza modificare il comportamento di tutti i progetti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Description

Sessions with path = NULL are missing from project session lists after the v1→v2 upgrade, even though their project_id is correct.

v1 began with no path column; 20260428004200_add_session_path added it (default NULL), and v1's inserts still left it NULL for root-level sessions for a while (in our DB: a clean NULL window 2026-04-03→05-05, with every later session writing ''). The v1→v2 importer copies path verbatim, so these rows arrive in session_v2 with path IS NULL. The project-scoped picker sends {project, subpath: ''} and SessionStore.list filters with an exact eq(SessionTable.path, input.subpath) (packages/core/src/session/store.ts:108) — in SQL, NULL = '' is not true, so the rows are excluded. The projector only rewrites the path of the session that triggered a Resolved event; historical rows are never backfilled.

Scope in our DB (opencode 2.0.14, upgraded from 1.18.x): 90 sessions — 88 in one git repo (87 top-level, mostly user-initiated forks, ~1,300 messages total) + 2 in a second repo. All have directory = project.worktree, so the correct value is ''. They are only reachable via "all projects" scope / global search.

This is a different defect from #50980 (where the row is absent from session_v2 entirely) and from the project_id='global' family (#50551, #50800, #50999): here the project attribution is right, only path is null.

Plugins

None relevant (server-side data/filter behavior).

OpenCode version

2.0.14 (affected, by source comparison: 2.0.14–2.0.16; not fixed on latest tag)

Steps to reproduce
  1. In opencode v1, create sessions in a git repo root during the window where v1 didn't write path (around the 20260428004200_add_session_path change — e.g. after the path column exists but before v1 started writing '').
  2. Upgrade to v2.0.14–2.0.16 and open that repo. The import copies path = NULL into session_v2.
  3. List sessions in the project: the NULL-path sessions don't appear, though "all projects" scope shows them.

Check your own DB:

SELECT project_id, directory, COUNT(*) FROM session_v2 WHERE path IS NULL GROUP BY 1, 2;
Expected Behavior

Sessions whose directory equals the project worktree should be listed at subpath = '', i.e. NULL should be treated as the empty path (the dev branch already adds this: and(isNull(path), eq(directory, …)) at packages/opencode/src/session/session.ts:970-976).

Related issues
  • #35750 — v1-era: new path column not back-filled during migration (origin of these NULLs)
  • #50980 — sister symptom: v1-era session missing from session_v2 entirely
  • #50551 — the project_id='global' family (different root cause, same picker filter)
Operating System

Arch Linux, x86_64

Terminal

kitty

Lingua principale
TypeScript
Stelle
210k
Fork
27.8k
Merge medio
8h 1m
PR unite (30g)
357

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di anomalyco/opencode

Tutte le issue di anomalyco/opencode

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.