CommandCodeAI / CommandCodeAI/command-code

/learn-taste learns nothing from Codex sessions: extractor only reads legacy event_msg/user_message format

Aperta
#847 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Nessun dato sulla lingua
Stelle
4k
Fork
350
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

What happens

/learn-taste (and cmd learn-taste) finds my Codex sessions but learns nothing from them. Taste onboarding ends with "TASTE Skipped", and ~/.commandcode/taste/ stays empty. Projects whose history is Codex-only get zero taste signal.

Environment

  • Command Code v1.53.1 (command-code npm global, cmdc), Windows 11, PowerShell
  • Codex CLI 0.154.0, sessions at ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl

Root cause: stale Codex prompt extractor

The session finder works (3-level YYYY/MM/DD walk + rollout-*.jsonl + session_meta.payload.cwd project match). But extractCodexPrompts only accepts lines shaped as:

{ "type": "event_msg", "payload": { "type": "user_message", "message": "..." } }

That shape no longer exists in Codex rollouts. Verified on this machine:

  • Newest rollout (Sept 2026): 165 lines, 62 event_msg, 0 with payload.type: "user_message". event_msg payloads are only item_completed, token_count, task_started, task_complete.
  • Search for "user_message" across all September rollouts: 0 hits. A May 2026 archived rollout: also 0.
  • Conversation turns now live in response_item entries:
{ "type": "response_item", "payload": { "type": "message", "role": "user", "content": [{ "type": "input_text", "text": "..." }] } }

(role is user / assistant / developer; user text parts use type: "input_text", assistant uses output_text.)

So extraction always yields [] → nothing to learn.

Suggested fix

In extractCodexPrompts, also handle type: "response_item" with payload.type: "message" and payload.role: "user", joining payload.content[].text for input_text parts. (Note: some role: "user" items are injected context like <environment_context> / skills text — you may want to skip those or let the taste model filter them.)

Secondary issue: case-sensitive cwd match on Windows

The project filter compares session_meta.payload.cwd === projectPath exactly. On Windows, recorded cwd case varies between sessions (e:\development\... vs E:\development\...), so matches are silently missed. Suggest case-insensitive comparison + separator normalization on win32.

Repro

  1. Have Codex-only history in a project (any recent Codex CLI).
  2. Run cmdc, then /learn-taste (or cmdc learn-taste) from that project dir.
  3. Observe: sessions are scanned, but no taste is learned.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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.

Direzione di ricerca

Inizia da extractCodexPrompts e segui la gestione delle sessioni utilizzata da /learn-taste e cmd learn-taste. Gestisci i messaggi degli utenti nelle voci response_item, quindi esamina il filtro del progetto session_meta.payload.cwd per individuare le differenze tra maiuscole e minuscole e tra separatori in Windows. Il lavoro è completato quando le sessioni recenti solo Codex producono un input taste e i percorsi di progetto corrispondenti non vengono ignorati silenziosamente su Windows.

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

Valutazione

Stack tecnologico
node.js
Ambito
cli
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
72/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.