Conversation
…for sparkline trends - Add _effective_manifest_name() helper to history.py that prefers EvalManifest.name over the filename when non-empty, falling back to the filename for backward compatibility - Update append_history_entry() to accept manifest_name parameter and store the effective manifest identity (logical name or filename) - Update find_last_matching_entry() to accept str | None and short-circuit on None - Update raki run CLI to compute effective_manifest_id from manifest.name and pass it to load_seen_session_ids, find_last_matching_entry, build_sparkline_data, and append_history_entry - Add 19 tests covering all new behavior - Add towncrier fragment changes/320.feature
…import alias Per review findings: - Rename _effective_manifest_name → effective_manifest_name (now part of public API) - Replace cryptic _eff_mfn alias in cli.py with the full descriptive name
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Sparkline trends and incremental session filtering now use the logical
name:field from the manifest YAML as the history match key, instead of the manifest filename.Previously,
HistoryEntry.manifeststored the filename (e.g.raki.yaml), but sparkline filtering compared against the project's logical name (e.g.soda-gate). This mismatch silently caused empty sparklines for all projects that setname:in their manifest.Changes
src/raki/report/history.pyeffective_manifest_name(manifest_name, manifest_file)helper — prefersEvalManifest.namewhen non-empty, falls back to filename for backward-compatibilityappend_history_entry()to acceptmanifest_name: str | Nonekwarg and store the logical name via the helperfind_last_matching_entry()signature:manifest: str | None(short-circuits onNone)src/raki/cli.py(theruncommand)effective_manifest_idfromeffective_manifest_name(manifest.name, manifest_file)right after manifest loadeffective_manifest_idintoload_seen_session_ids(),find_last_matching_entry(), andbuild_sparkline_data()tests/test_320_manifest_name_history.py— 19 new tests covering all affected functionschanges/320.feature— Towncrier changelog fragmentAcceptance Criteria
append_history_entry()storesmanifest.name(logical name) in the history entrymanifest.nameas the match keymanifest.namename:share historyReview Results
_effective_manifest_namehad a leading underscore but was imported cross-module — renamed toeffective_manifest_name_eff_mfnincli.pywas cryptic — replaced with full descriptive nameRefs #320
Assisted-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
Assigned-by: decko