parity(#143): post-migration span capture + diff vs #137 baseline

Captured from feature/tracing-migration f510940 (rebased on master 8284509),
same Jaeger / request set / DB snapshot procedure as pre-migration. Result:
names + semantic attributes preserved, traceparent intact, no orphaned spans,
async/streaming paths now single traces. See post-migration/README.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Cameron CordesandClaude Opus 5.5 committed 2026-09-29 17:29:31 -04:00
1 parent 73523c6796
commit e754e149d7
6 files changed
+1272

No files matched your search

@@ -0,0 +1,108 @@
== Operations: before -> after ==
only before: ['db.query.find_relevant_events_hybrid']
only after: ['GET /insights/generation/status', 'GET /memories', 'GET /photos', 'POST /insights/chat/stream', 'POST /insights/generate/agentic', 'ai.chat.turn.stream', 'db.query.get_job_by_id', 'watcher.initial_probe']
== Common operations: kind / scope / attribute-key changes ==
ai.agentic.loop: same | traces 1/1 -> 1/1, roots=0
ai.insight.generate_agentic: same | traces 1/1 -> 1/1, roots=0
ai.rag.search_daily_summaries: same | traces 1/1 -> 1/2, roots=0
db.insert.create_job: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.insert.store_insight: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.insert.upsert_entity: scope db->image-server | traces 1/2 -> 1/3, roots=0
db.insert.upsert_fact: scope db->image-server | traces 1/1 -> 1/2, roots=0
db.insert.upsert_photo_link: scope db->image-server | traces 1/1 -> 1/2, roots=0
db.query.count_for_library: scope db->image-server | traces 4/4 -> 1/4, roots=0
db.query.faces_for_hash: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.query.find_similar_summaries_with_time_weight: scope db->image-server | traces 1/1 -> 1/2, roots=0
db.query.get_active_job: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.query.get_current_insight_for_library: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.query.get_event_count: scope db->image-server | traces 2/2 -> 2/2, roots=0
db.query.get_exif: scope db->image-server | traces 2/2 -> 1/3, roots=0
db.query.get_links_for_photo: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.query.get_location_count: scope db->image-server | traces 2/2 -> 2/2, roots=0
db.query.get_memories_in_window: scope db->image-server | traces 1/4 -> 1/4, roots=0
db.query.get_persona: scope db->image-server | traces 4/4 -> 2/4, roots=0
db.query.get_prefs: scope db->image-server | traces 4/4 -> 3/4, roots=0
db.query.get_tag_counts_batch: scope db->db/image-server | traces 1/1 -> 2/4, roots=0
db.query.get_tags_for_path: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.query.has_any_faces: scope db->image-server | traces 2/2 -> 2/2, roots=0
db.query.has_any_summaries: scope db->image-server | traces 2/2 -> 2/2, roots=0
db.query.list_entities: scope db->image-server | traces 1/2 -> 1/4, roots=0
db.query.list_rel_paths_for_libraries: scope db->db/image-server | traces 1/1 -> 2/4, roots=0
db.query.resolve_content_hash: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.update.cancel_active_jobs: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.update.complete_job: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.update.update_facts_insight_id: scope db->image-server | traces 1/1 -> 1/1, roots=0
db.update.update_training_messages: scope db->image-server | traces 1/1 -> 1/1, roots=0
generate_video_thumbnail: same | traces 1/222 -> 1/414, roots=0
http.insights.generate_agentic: same | traces 1/1 -> 1/1, roots=0
list_memories: same | traces 1/1 -> 1/1, roots=0
list_photos: same | traces 1/1 -> 2/4, roots=0
llm.request: same | traces 3/8 -> 2/12, roots=0
== Roots in the after capture (span with no parent) ==
GET /insights/generation/status trace=4e4c40ef spans_in_trace=2
GET /insights/generation/status trace=9b6f5cad spans_in_trace=2
GET /insights/generation/status trace=92fe175c spans_in_trace=2
GET /insights/generation/status trace=a1c2c449 spans_in_trace=2
GET /insights/generation/status trace=73ad5d54 spans_in_trace=2
GET /insights/generation/status trace=96ba44fa spans_in_trace=2
GET /insights/generation/status trace=63be2acf spans_in_trace=2
POST /insights/chat/stream trace=119b1ad6 spans_in_trace=11
GET /insights/generation/status trace=d0f13d49 spans_in_trace=2
GET /insights/generation/status trace=01e0824c spans_in_trace=2
watcher.initial_probe trace=09884c56 spans_in_trace=5
GET /insights/generation/status trace=4a47ba01 spans_in_trace=2
POST /insights/generate/agentic trace=881c56c0 spans_in_trace=52
GET /insights/generation/status trace=87857a0b spans_in_trace=2
GET /insights/generation/status trace=e1cf97cb spans_in_trace=2
GET /insights/generation/status trace=5f02a109 spans_in_trace=2
GET /insights/generation/status trace=6fb52a67 spans_in_trace=2
GET /insights/generation/status trace=2512bbae spans_in_trace=2
GET /photos trace=4cd7207a spans_in_trace=4
GET /memories trace=0c26f842 spans_in_trace=7
GET /insights/generation/status trace=6844193f spans_in_trace=2
== Ancestry of key spans ==
list_photos <- (remote 2222222222222222)
llm.request <- ai.chat.turn.stream <- POST /insights/chat/stream [llm.operation=chat_stream]
db.update.update_training_messages <- ai.chat.turn.stream <- POST /insights/chat/stream
ai.chat.turn.stream <- POST /insights/chat/stream
llm.request <- ai.rag.search_daily_summaries <- ai.agentic.loop <- ai.insight.generate_agentic <- http.insights.generate_agentic <- POST /insights/generate/agentic [llm.operation=embeddings]
llm.request <- ai.agentic.loop <- ai.insight.generate_agentic <- http.insights.generate_agentic <- POST /insights/generate/agentic [llm.operation=chat]
ai.agentic.loop <- ai.insight.generate_agentic <- http.insights.generate_agentic <- POST /insights/generate/agentic
db.insert.store_insight <- ai.insight.generate_agentic <- http.insights.generate_agentic <- POST /insights/generate/agentic
ai.insight.generate_agentic <- http.insights.generate_agentic <- POST /insights/generate/agentic
list_memories <- GET /memories
generate_video_thumbnail <- (remote 4b78d96000f31655)
== traceparent probe ==
list_photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.list_rel_paths_for_libraries <- list_photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.get_tag_counts_batch <- list_photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.list_rel_paths_for_libraries <- list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.get_tag_counts_batch <- list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.list_rel_paths_for_libraries <- list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
db.query.get_tag_counts_batch <- list_photos <- GET /photos <- (remote 2222222222222222) trace=11111111111111111111111111111111
== llm.request attribute presence ==
op=chat_stream model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=11148 parent=ai.chat.turn.stream
op=embeddings model=embed provider=llamacpp status=200 tokens_in=None parent=ai.rag.search_daily_summaries
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=10289 parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=10480 parent=ai.agentic.loop
op=embeddings model=embed provider=llamacpp status=200 tokens_in=None parent=ai.agentic.loop
op=embeddings model=embed provider=llamacpp status=200 tokens_in=None parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=5089 parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=10672 parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=10911 parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=10340 parent=ai.agentic.loop
op=chat model=qwen3.8-27b-abliterated provider=llamacpp status=200 tokens_in=9858 parent=ai.agentic.loop
op=embeddings model=embed provider=llamacpp status=200 tokens_in=None parent=ai.rag.search_daily_summaries
== turn / insight spans: llm.backend + llm.model ==
ai.chat.turn.stream: llm.backend=None llm.model=None backend=None model=None
ai.insight.generate_agentic: llm.backend=None llm.model=None backend=local model=qwen3.8-27b-abliterated