G
YouTube TikTok Games
Skip to content

UX: compact hierarchical Frame Details with aligned Name / Value columns - #161

Merged
masarray merged 7 commits into
masterfrom
feat/frame-inspector-hierarchical-properties-20261111
Nov 11, 2026
Merged

masarray merged 7 commits into
masterfrom
feat/frame-inspector-hierarchical-properties-20261111

Conversation

@masarray

Copy link
Copy Markdown
Owner

Engineer observation UI — selected-frame hierarchy

Screenshot-driven P1 Frame Details fix. The prior DataGrid RowDetails stacked explanatory paragraphs under every value, causing excessive wrapping and unstable column alignment (especially Quality, IOA and object children).

Changes

  • Replace selection-triggered multi-line RowDetails with a compact, two-column virtualized Name / Value tree projected only on selected frame. Expand/collapse with chevrons; maintain column alignment at every indentation depth.
  • Quality defaults to an explicit Quality → Quality details → IV/NT/BL/SB/raw property hierarchy, as in the supplied reference image. Only canonical decoded bits are listed. Values and explanations have hover tooltips; no inline encyclopedic paragraphs.
  • Keep full source-backed information objects and byte provenance, original hex and all existing desktop acceptance checks; no protocol/FCB/serial transport work.
  • Severity is derived only from actual source values: invalid/checksum red, overflow/non-topical/ACD orange, good green.
  • Deterministic tests for default quality hierarchy, toggle, no fabricated missing-QDS bits, color semantics, and >16 source objects. WPF acceptance checks real opened panel and no multiline row details.

Verification

The exact PR head should pass selective Windows build/test, CodeQL; request full Windows WPF viewport and GUI package test via /ci full after selective gate passes. This PR is independent of P0 IEC-101 engine Draft #145 and installer PR #160; do not bundle them without reconciliation.

Release

Do not merge before exact-head CI and real WPF acceptance; released RC remains unchanged.

Copy link
Copy Markdown
Owner Author

/ci full

Comment on lines +216 to +235
{
var rows = FrameInspectorTreePresentation.Build(
SelectedFrameProperties.ToArray(), _expandedFramePropertyKeys);
// Preserve the scroll position as far as possible on disclosure toggles:
// update only the changed span rather than clearing the whole DataGrid.
var prefix = 0;
while (prefix < VisibleFrameProperties.Count && prefix < rows.Count &&
Equals(VisibleFrameProperties[prefix], rows[prefix]))
prefix++;
var suffix = 0;
while (suffix < VisibleFrameProperties.Count - prefix &&
suffix < rows.Count - prefix &&
Equals(VisibleFrameProperties[VisibleFrameProperties.Count - suffix - 1],
rows[rows.Count - suffix - 1]))
suffix++;
while (VisibleFrameProperties.Count > prefix + suffix)
VisibleFrameProperties.RemoveAt(prefix);
for (var i = prefix; i < rows.Count - suffix; i++)
VisibleFrameProperties.Insert(i, rows[i]);
}

Copy link
Copy Markdown
Owner Author

/ci full

Copy link
Copy Markdown
Owner Author

/ci full

Copy link
Copy Markdown
Owner Author

/ci full

1 similar comment

Copy link
Copy Markdown
Owner Author

/ci full

@masarray
masarray marked this pull request as ready for review November 11, 2026 09:30
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-11T09:32:44.398240Z 52dbd3d Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@masarray
masarray merged commit 7d86608 into master Nov 11, 2026
8 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 52dbd3d02b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

ToolTipService.IsEnabled="False" RowDetailsVisibilityMode="VisibleWhenSelected"
IsReadOnly="True" AutoGenerateColumns="False" CanUserSortColumns="False"
<DataGrid x:Name="FramePropertiesGrid"
ItemsSource="{Binding VisibleFrameProperties}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear the visible property projection when selection is cleared

After opening Frame Details and selecting a frame, clearing the selection or resuming the live view leaves that frame's properties displayed. ApplySelectedEvidenceRowToInspector(null) still clears only SelectedFrameProperties, whereas this grid now binds to VisibleFrameProperties; the original HEX area resets while the decoded properties remain stale. Clear the visible projection and expansion keys in the null-selection path as well so properties from an earlier selection or session are not presented as current evidence.

Useful? React with 👍 / 👎.

<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid VerticalAlignment="Center" Margin="8,5,4,5">
<Grid Height="25" ToolTipService.IsEnabled="True" ToolTip="{Binding NameTooltip}">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep inspector explanations accessible without hover popups

With Frame Details open, hovering any property name now opens its explanation over the evidence, and value cells and disclosure buttons also introduce tooltips. This reverses the previous tooltip-disabled inspector and violates the current R6 rule in AGENTS.md prohibiting intrusive hover popups/tooltips on the inspector. Preserve access to complete labels, values and explanations through an explicit selected-field detail surface rather than enabling hover overlays.

AGENTS.md reference: AGENTS.md:L23-L23

Useful? React with 👍 / 👎.

Comment on lines +62 to +65
TraceInspectorColumn.MinWidth = 325;
// One engineer mode: the raw/decoded trace still owns the majority
// of horizontal space, and the operator may drag the splitter.
TraceInspectorColumn.Width = new GridLength(1.55, GridUnitType.Star);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the responsive layout policy for the new inspector

This change raises the inspector's minimum width from 250 to 325 DIP and changes its share of the trace workspace, but the commit contains no documentation updates. AGENTS.md explicitly requires updating docs/RESPONSIVE_LAYOUT_POLICY.md when changing layout. Document the new dock sizing and compact property-tree behavior there so the repository's responsive-layout contract reflects the implementation.

AGENTS.md reference: AGENTS.md:L259-L259

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants