feat(ui): audit feed / skipped-PR viewer - #831
Merged
Merged
Conversation
Wire the existing skipped-pr-audit API into a filterable maintainer-facing audit page and reusable audit-feed component for later automation surfaces. Fixes JSONbored#792 Co-authored-by: Cursor <cursoragent@cursor.com>
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers. |
Contributor
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
This was referenced Jun 17, 2026
1 task
This was referenced Jun 17, 2026
This was referenced Jun 18, 2026
JSONbored
added a commit
that referenced
this pull request
Jun 18, 2026
Phase 3 (#784) MCP slice: `gittensory_get_automation_state(owner, repo)` surfaces a repo's agent automation posture for a maintainer's harness — the per-action autonomy levels, kill-switch / dry-run mode, GitHub write-permission readiness, the acting action classes, and the COUNT of auto_with_approval actions awaiting a decision. Repo-access scoped (consistent with gittensory_get_repo_context). Deliberately read-only and count-only: the full approval queue + accept/reject stay behind the maintainer-authed REST API (#779) and the dashboard/CLI surfaces, so the MCP tool never leaks the queue's action details. Does NOT close #784 — the dashboard slice is in flight via a contributor PR (#831), and the CLI `maintain` slice + the MCP accept/reject write path remain. Tests: a configured repo (autonomy, dry-run mode, write-ready, pending count) and an unknown/un-onboarded repo (unconfigured, not_required, no installation). New code 100% covered; MCP discovery/output-schema meta-tests green; full suite green (2120).
3 tasks
JSONbored
added a commit
that referenced
this pull request
Jun 18, 2026
…/pause/resume (advances #784) Phase 3 (#784) CLI slice: a `gittensory-mcp maintain` command for the agent auto-maintain layer, thin-proxying the existing maintainer APIs (the API enforces authorization; the CLI never decides locally): - maintain status --repo o/r -> GET the agent approval queue (#779) - maintain approve <id> --repo -> POST .../accept (execute the staged action) - maintain reject <id> --repo -> POST .../reject (cancel it) - maintain pause|resume --repo -> PUT settings { agentPaused } (kill-switch, #130) The CLI exposes approve|reject; it maps to the route's accept|reject decision verb. --json for machine output. Wired into the command dispatch + completion registry + a maintain help command. This is one incremental slice of #784 (the CLI deliverable) — the issue stays open; the dashboard slice is in flight via contributor PR #831, the MCP read tool is a separate PR. Tests: status (plain + json), approve/reject, pause/resume, input validation (--repo required, id required for approve, unknown subcommand), and help. Fixture server gains the queue + settings endpoints. Full suite green (2123).
JSONbored
added a commit
that referenced
this pull request
Jun 18, 2026
Contributor
|
|
JSONbored
requested changes
Jun 18, 2026
JSONbored
left a comment
Owner
There was a problem hiding this comment.
Good:
- Useful private audit-feed UI for skipped PR/public-surface decisions.
- Route/nav integration and role boundary are sensible.
- UI build/validate pass.
Bad:
- Invalid sinceInput crashes before validation: new Date(sinceInput).toISOString() throws RangeError.
- Tests miss the reviewer-requested invalid-date path, enabled=false, load-more/max-limit, and malformed API cases.
- Current checks are mostly UI-focused/skipped for broader suites, so coverage confidence is thin.
Change requests:
- Validate sinceInput before toISOString; never throw from Apply Filters.
- Add tests for invalid since, enabled=false, load more/max limit, and malformed/empty API response.
Validate since input before ISO conversion so Apply Filters never throws, normalize malformed skipped-pr-audit payloads, and add tests for invalid dates, disabled feed, load-more cap, and bad API responses. Addresses review on JSONbored#831. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
Author
|
@JSONbored |
JSONbored
approved these changes
Jun 18, 2026
JSONbored
left a comment
Owner
There was a problem hiding this comment.
PR #831 — feat(ui): audit feed / skipped-PR viewer [kiannidev]
Action: APPROVE
Issue #792: FULLY CI: pass
Good:
- normalizeSinceInput now guards Date.parse + try/catches toISOString — the RangeError crash the
maintainer flagged is fixed; applyFilters can no longer throw. - Tests now cover the previously-missing paths: invalid since, enabled=false, load-more/max-limit,
malformed/empty API response. Wired to the real /v1/app/skipped-pr-audit endpoint (verified on main).
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
/app/audit— filterable skipped-PR audit trail (reason, repo, PR, time, remediation)AuditFeedcomponent (audit-feed.tsx+audit-feed-model.ts) for later agent-layer automation UI (feat(agent): automation controls surface (dashboard + CLI + MCP) #784)Issue
Fixes #792
API
Consumes existing
GET /v1/app/skipped-pr-audit(no backend changes).Validation
npm --workspace @jsonbored/gittensory-ui run testnpm run ui:lintnpm run ui:typechecknpm run ui:buildTest plan
/app/auditloads seeded skip rowsbot_author,surface_off, etc.)Screenshots