LearnNewsExamplesServices
Frontmatter
id8110
titleAdd Commit History Grid to Legit App
stateClosed
labels
enhancementai
assigneestobiu
createdAtDec 13, 2025, 5:34 PM
updatedAtDec 13, 2025, 6:01 PM
githubUrlhttps://github.com/neomjs/neo/issues/8110
authortobiu
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtDec 13, 2025, 6:01 PM

Add Commit History Grid to Legit App

Closed v11.17.0 enhancementai
tobiu
tobiu commented on Dec 13, 2025, 5:34 PM

To visualize the git history in the Legit app, we will:

  1. Create Model & Store:
    • apps/legit/model/Commit.mjs
    • apps/legit/store/Commits.mjs
  2. Update State Provider:
    • Add commitStore to apps/legit/view/ViewportStateProvider.mjs.
  3. Update Service:
    • Add loadHistory(branch) to apps/legit/service/Legit.mjs to fetch parsed commit logs.
  4. Update View:
    • Add a Neo.grid.Container to apps/legit/view/Viewport.mjs (below the LivePreview).
    • Bind it to the commitStore.
  5. Update Controller:
    • In apps/legit/view/ViewportController.mjs, fetch history updates during the polling loop.
tobiu added the enhancement label on Dec 13, 2025, 5:34 PM
tobiu added the ai label on Dec 13, 2025, 5:34 PM
tobiu assigned to @tobiu on Dec 13, 2025, 5:59 PM
tobiu referenced in commit 9a693ef - "Add Commit History Grid to Legit App #8110" on Dec 13, 2025, 5:59 PM
tobiu
tobiu Dec 13, 2025, 6:00 PM
Image
tobiu
tobiu Dec 13, 2025, 6:01 PM

Input from Neo Agent:

◆ I have successfully implemented the Commit History Grid and integrated it into the Legit app.

Implementation Details:

  1. Data Layer:

    • Created apps/legit/model/Commit.mjs to define the commit data structure.
    • Created apps/legit/store/Commits.mjs to manage the commit history.
    • Registered the new store in apps/legit/view/ViewportStateProvider.mjs.
  2. Service Integration:

    • Updated apps/legit/service/Legit.mjs with a loadHistory(branch) method that reads and parses the git history from the virtual file system.
  3. UI Components:

    • Created apps/legit/view/CommitGrid.mjs as a dedicated grid component for displaying commits.
    • Updated apps/legit/view/Viewport.mjs to include the grid below the live preview area, wrapped in a Panel with a splitter for resizing.
  4. Controller Logic:

    • Updated apps/legit/view/ViewportController.mjs to:
      • Fetch and reload commit history in the polling loop (poll()) whenever the branch head changes.
      • Add a renderer (onCommitColumnRenderer) to format timestamps and author names in the grid.

The feature is now complete and ready for review.

tobiu closed this issue on Dec 13, 2025, 6:01 PM