fix for project files written to wrong directory

This commit is contained in:
JesseMarkowitz
2026-03-30 15:25:18 -04:00
parent 340293ab94
commit a869e8c7ba
2 changed files with 13 additions and 3 deletions

View File

@@ -594,6 +594,12 @@ def export(
conv_id = raw_conv.get("id") or raw_conv.get("uuid", "unknown") conv_id = raw_conv.get("id") or raw_conv.get("uuid", "unknown")
try: try:
full_raw = prov_instance.get_conversation(conv_id) full_raw = prov_instance.get_conversation(conv_id)
# Propagate provider annotations from the listing summary
# (e.g. _project_name set by ChatGPT project fetching) into
# the full detail so normalize_conversation can use them.
for key, val in raw_conv.items():
if key.startswith("_") and key not in full_raw:
full_raw[key] = val
normalized = prov_instance.normalize_conversation(full_raw) normalized = prov_instance.normalize_conversation(full_raw)
exported_path: Path | None = None exported_path: Path | None = None

View File

@@ -551,12 +551,16 @@ class ChatGPTProvider(BaseProvider):
created_at = _ts_to_iso(raw.get("create_time")) created_at = _ts_to_iso(raw.get("create_time"))
updated_at = _ts_to_iso(raw.get("update_time")) updated_at = _ts_to_iso(raw.get("update_time"))
# Look up project name from the map built during fetch_all_conversations. # Prefer _project_name annotation injected from the listing summary
project = self._project_map.get(conv_id) if conv_id else None # (propagated by the export loop). Fall back to _project_map lookup.
project = raw.get("_project_name") or (
self._project_map.get(conv_id) if conv_id else None
)
logger.debug( logger.debug(
"[chatgpt] normalize_conversation[%s]: project_map lookup → %r", "[chatgpt] normalize_conversation[%s]: project=%r (source=%s)",
conv_id[:8] if conv_id else "?", conv_id[:8] if conv_id else "?",
project, project,
"_project_name" if raw.get("_project_name") else "_project_map",
) )
mapping: dict = raw.get("mapping", {}) mapping: dict = raw.get("mapping", {})