LearnNewsExamplesServices
Frontmatter
id8024
titleRefactor Intervention View to dedicated Grid Component
stateClosed
labels
enhancementairefactoring
assigneestobiu
createdAtDec 4, 2025, 11:48 PM
updatedAtDec 5, 2025, 12:16 AM
githubUrlhttps://github.com/neomjs/neo/issues/8024
authortobiu
commentsCount1
parentIssue7918
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtDec 5, 2025, 12:16 AM

Refactor Intervention View to dedicated Grid Component

Closed v11.16.0 enhancementairefactoring
tobiu
tobiu commented on Dec 4, 2025, 11:48 PM

Extract the inline intervention component from apps/agentos/view/Viewport.mjs into its own dedicated class apps/agentos/view/InterventionPanel.mjs.

Requirements:

  • Create apps/agentos/view/InterventionPanel.mjs extending Neo.container.Panel.
  • The panel will contain a Neo.grid.Container as its main item.
  • The Grid will define columns for: Timestamp, Message, and Priority.

Architectural Decision: We will move the entire Panel out to InterventionPanel.mjs. This encapsulates the "Intervention" domain logic (headers, tools, and the grid itself) into a single unit, keeping the Viewport clean. The Grid inside will be configured directly within this new class.

Data Structure: The grid should support at least:

  • Time
  • Message
  • Priority (Visual indicator)
tobiu added the enhancement label on Dec 4, 2025, 11:48 PM
tobiu added the ai label on Dec 4, 2025, 11:48 PM
tobiu added the refactoring label on Dec 4, 2025, 11:48 PM
tobiu added parent issue #7918 on Dec 4, 2025, 11:49 PM
tobiu assigned to @tobiu on Dec 4, 2025, 11:49 PM
tobiu referenced in commit daaddf9 - "Refactor Intervention View to dedicated Grid Component #8024" on Dec 5, 2025, 12:14 AM
tobiu
tobiu Dec 5, 2025, 12:15 AM

Input from Gemini 2.5 pro:

✦ I have implemented the dedicated InterventionPanel as a Grid component, along with a structured data layer.

Changes Implemented:

  1. Dedicated View Class:

    • Created apps/agentos/view/InterventionPanel.mjs extending Neo.container.Panel.
    • Contains a Neo.grid.Container configured with columns for Timestamp, Message, and Priority.
    • Includes custom cell renderers for date formatting (HH:MM:SS) and priority color coding.
    • Refactored apps/agentos/view/Viewport.mjs to use this new component, replacing the inline HTML implementation.
  2. Data Layer (New Artifacts):

    • Model: Created apps/agentos/model/Intervention.mjs. Defined fields (id, timestamp (Date), message, priority) and removed redundant configs.
    • Store: Created apps/agentos/store/Interventions.mjs. Configured with autoLoad: true and a URL pointing to the app-specific resource data.
    • Data: Created apps/agentos/resources/data/interventions.json containing dummy data with ISO 8601 formatted timestamps to ensure proper parsing by the Data Worker.
  3. Path Correction:

    • Updated the Store URL to use Neo.config.basePath + 'apps/agentos/resources/data/interventions.json' to ensure compatibility across both development and production environments.
tobiu closed this issue on Dec 5, 2025, 12:16 AM