gabriel / musehub public
feat BREAKING intel dev
AI Agent gabriel · 129 days ago · May 6, 2026 · Diff

feat(intel): populate op and last_commit_id on musehub_symbol_intel

- SymbolIntel TypedDict: add last_op and last_commit_id fields - _compute_symbol_intel: track last_op + last_commit_id alongside last_author in the same newest-ts guard — zero extra passes over history - _upsert_symbol_intel: write op and last_commit_id columns; include in on_conflict_do_update so re-indexing keeps them current - backfill_intel_fields(session, repo_id): single UPDATE...FROM DISTINCT ON query — picks most recent history entry per symbol, sets op + last_commit_id idempotent, one round-trip - Backfill run: 19924 rows updated on musehub repo - I401-I410 all green (10/10)

sha256:3cfbf9d4a1ed4b2975b6b5208e85116e975f2d8e70f27b6d622efdd5fd696bc9 sha
+27 ~3 symbols
sha256:e716d8ef2e17cfd84e9ac0539e5c7549055e28d1a97489a469780f47e1734028 snapshot
+27
symbols added
~3
symbols modified
0
dead code introduced
Semantic Changes 30 symbols
+ _cid function function _cid L57–58
+ _lid function function _lid L61–62
+ _make_commit function async_function _make_commit L65–95
+ _now function function _now L53–54
+ AsyncSession import import AsyncSession L42–42
+ annotations import import annotations L35–35
+ blob_id import import blob_id L45–45
+ create_repo import import create_repo L46–46
+ datetime import import datetime L38–38
+ db import import db L44–44
+ long_id import import long_id L45–45
+ pytest import import pytest L40–40
+ secrets import import secrets L37–37
+ select import import select L41–41
+ timedelta import import timedelta L38–38
+ timezone import import timezone L38–38
+ test_i401_compute_returns_last_op function async_function test_i401_compute_returns_last_op L103–116
+ test_i402_compute_returns_last_commit_id function async_function test_i402_compute_returns_last_commit_id L124–136
+ test_i403_last_op_is_most_recent function async_function test_i403_last_op_is_most_recent L144–162
+ test_i404_upsert_writes_op function async_function test_i404_upsert_writes_op L170–194
+ test_i405_upsert_writes_last_commit_id function async_function test_i405_upsert_writes_last_commit_id L202–227
+ test_i406_build_index_populates_op function async_function test_i406_build_index_populates_op L235–255
+ test_i407_build_index_populates_last_commit_id function async_function test_i407_build_index_populates_last_commit_id L263–283
+ test_i408_backfill_fixes_null_op function async_function test_i408_backfill_fixes_null_op L291–323
+ test_i409_backfill_fixes_null_last_commit_id function async_function test_i409_backfill_fixes_null_last_commit_id L331–361
+ test_i410_backfill_idempotent function async_function test_i410_backfill_idempotent L369–402
~ musehub/services/musehub_symbol_indexer.py .py 1 symbol added, 3 symbols modified
+ backfill_intel_fields function async_function backfill_intel_fields L830–863
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:3cfbf9d4a1ed4b2975b6b5208e85116e975f2d8e70f27b6d622efdd5fd696bc9 --body "your comment"