feat(page-26): add Type column — observation vs production#137
Merged
Conversation
…on artifacts
Closes the cross-registry-visibility gap surfaced by the operator
question "are the observation-only artifacts marked as such in the
artifact freshness page?" Severity (warning/critical) was overloaded
and there was no way to tell which warning entries were observe-mode
rollouts vs which were secondary observability for production runs.
Derivation rule (single SoT, no new data — uses cross-link in
OBSERVATION_REGISTRY.yaml + severity in ARTIFACT_REGISTRY.yaml):
- production: severity == critical OR no active observation entry's
composes_with references this artifact
- observation: severity == warning AND at least one active
(state in {always-on, gated-on}) observation references this id
Live verification: 51 entries → 3 observation + 48 production.
- observation: scanner_candidates_json, factor_profiles_latest,
research_scorecard_latest
- production: includes critical entries (signals.json,
predictor_predictions, weekly_collector_manifest) AND warning-
severity secondary-observability (macro_snapshot,
research_consolidated_morning)
- Boundary case: signals.json is severity=critical AND observed by
attractiveness_pillars_phase_4 → classified production (critical
wins; cross-link doesn't override load-bearing status)
Changes:
- Imports observation_registry_loader (shipped in #135)
- New _load_active_observation_artifact_refs helper (TTL 60s cache)
- _derive_type applies the rule per-row
- df.apply builds a type column
- New "Type" filter (5th multiselect)
- New "Type" column inserted between State and Artifact in display table
Deploy after merge:
ae-dashboard "sudo systemctl start boot-pull && sudo systemctl restart dashboard"
Composes with alpha-engine-config #349/#351/#352/#355 (registry arc)
+ alpha-engine-dashboard #135 (page 27) + #136 (format_age fix) +
[[feedback_observe_mode_unconditional_gates_govern_cutover]].
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploying nousergon-marketing with
|
| Latest commit: |
f895dd3
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4039083b.nousergon-marketing.pages.dev |
| Branch Preview URL: | https://feat-page26-type-column.nousergon-marketing.pages.dev |
3 tasks
cipher813
added a commit
that referenced
this pull request
May 28, 2026
Surfaces the per-cycle history for each artifact, reading the new
_freshness_monitor/history.json written daily at 04:00 UTC by the
freshness-monitor Lambda's historical mode (alpha-engine-data PR #339).
Closes the gap surfaced 2026-05-28: 'are there gaps in the producer's
history?' — operators want to know not just current-cycle state but
whether last weekend / last month had silent absences.
Changes:
- _load_history loader (TTL 300s — refreshes once/day, not 15min)
- New History (12wk) column on the main table:
✅ N/N continuous — clean history
⚠️ G/N gaps — gappy producer
✅ exists (latest) — latest-pointer present
❌ absent (latest) — latest-pointer missing
— — historical probe hasn't covered this id yet
(continuous-cadence artifacts skip historical mode)
- New 'Per-artifact history drill-down' section below the main
table. Each artifact in the filtered view gets an expander
showing the per-cycle sequence (date / present / size /
last_modified / error_code). Sort: gappy first, continuous last;
latest-pointer absent at top, latest-pointer present at bottom.
First 3 worst-offender entries auto-expand.
- Graceful-degrade: if history.json doesn't exist yet, page shows
a single info box explaining the daily cron + manual-invoke
instructions.
Operator caveat: calendar-naive. NYSE holidays may render as
false-positive ❌ absent cells. Calendar-aware probe is a future
enhancement (P3 in the Lambda PR).
Composes with alpha-engine-data PR #339 (historical-mode Lambda)
+ the prior page 26/27 work in #134/#135/#136/#137.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Closes the cross-registry-visibility gap: operator can now see at a glance which artifacts on page 26 are observe-mode rollouts vs which are load-bearing for production. Single new "Type" column with binary values
observation/production, derived from data already in ARTIFACT_REGISTRY + OBSERVATION_REGISTRY.Derivation rule
severity == criticalproduction(always load-bearing)severity == warningAND in active observation'scomposes_withobservationseverity == warningAND not referencedproduction(secondary observability of production run)Live verification
51 artifacts → 3 observation + 48 production:
scanner_candidates_json,factor_profiles_latest,research_scorecard_latestsignals.jsonis severity=critical AND observed byattractiveness_pillars_phase_4_composite→ classifiedproduction(critical wins; the cross-link doesn't override load-bearing status)Changes
observation_registry_loader(shipped 2026-05-28 in PR feat(dashboard): Active Observations surface — page 27 + System Health KPI strip #135)_load_active_observation_artifact_refshelper (TTL 60s cache)_derive_typeapplies the rule per-rowDeploy
Composes with
feedback_observe_mode_unconditional_gates_govern_cutover(2026-05-28)🤖 Generated with Claude Code