Frontmatter
| id | 8024 |
| title | Refactor Intervention View to dedicated Grid Component |
| state | Closed |
| labels | enhancementairefactoring |
| assignees | tobiu |
| createdAt | Dec 4, 2025, 11:48 PM |
| updatedAt | Dec 5, 2025, 12:16 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8024 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 7918 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Dec 5, 2025, 12:16 AM |
Refactor Intervention View to dedicated Grid Component
tobiu added parent issue #7918 on Dec 4, 2025, 11:49 PM
tobiu assigned to @tobiu on Dec 4, 2025, 11:49 PM

tobiu
Dec 5, 2025, 12:15 AM
Input from Gemini 2.5 pro:
✦ I have implemented the dedicated
InterventionPanelas a Grid component, along with a structured data layer.Changes Implemented:
Dedicated View Class:
- Created
apps/agentos/view/InterventionPanel.mjsextendingNeo.container.Panel.- Contains a
Neo.grid.Containerconfigured with columns forTimestamp,Message, andPriority.- Includes custom cell renderers for date formatting (HH:MM:SS) and priority color coding.
- Refactored
apps/agentos/view/Viewport.mjsto use this new component, replacing the inline HTML implementation.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 withautoLoad: trueand a URL pointing to the app-specific resource data.- Data: Created
apps/agentos/resources/data/interventions.jsoncontaining dummy data with ISO 8601 formatted timestamps to ensure proper parsing by the Data Worker.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
Extract the inline intervention component from
apps/agentos/view/Viewport.mjsinto its own dedicated classapps/agentos/view/InterventionPanel.mjs.Requirements:
apps/agentos/view/InterventionPanel.mjsextendingNeo.container.Panel.Neo.grid.Containeras its main item.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: