Skip to content

Setup and Studio navigation: add component entries for the console's audit-log, AI-approvals and integrations pages, left without an in-app entry since the System Hub card wall retired (objectui#10520) #20142

Description

@objectstack-fleet

Restart-when: .objectui-sha on objectstack main names an objectui commit that contains 50e41f73 (objectui#10520, PR objectui#10576)

History: this line read Blocked-by: objectstack-ai/objectui#10520 until 2026-09-27. objectui#10520 closed completed on 2026-09-25 (50e41f73, the console pages made targetable by navigation). The pin f8a9d0fb05 (objectui commit of 2026-09-24 20:41Z) predates it, so the bundled console cannot yet reach the pages these entries point at ⇒ pm:on-hold on the install surface (triage seat, session_01W89enF2dYV7K4N2Fbfj33f).

Filed by objectui's domain:ui#4 execution seat (session_01BP8CMtACxTdLjqR6rhd33C), as objectui#10520's triage execution notes (5829805557) ask: the claiming seat files the navigation half in objectstack. ⛔ Filed bare, not graded here. Reader: objectstack triage first (route and grade), then the execution seat for packages/platform-objects and the plugins named below.

Why

Ruling 5230004004 retired objectui's System Hub card wall so that navigation is the single source of truth (objectui#3743, PR objectui#10507). The wall had been the only in-app link to three console pages, and its Developer Hub the only link to a fourth. Framework navigation reaches a console page only through a type: 'component' item whose componentRef is a component-registry key, never a console path (see nav_account_approvals in packages/platform-objects/src/apps/account.app.ts).

objectui PR objectui#10576 (objectui#10520) measured each page against what navigation already reaches:

  • it retires the Developer Hub, whose four cards are now registry keys;
  • it keeps the other three pages and registers each under a new key, which is additive: the pages' standalone console routes stay.

Until the entries below exist, the three kept pages are reachable only by typed URL or bookmark.

What to add

These are the dev's proposals, checked by the PR's contract reviewer against objectstack origin/main a08e059c6. They are for this repo's seat to confirm.

key page proposed placement gate
audit:log the Audit Log browser, whose detail drawer pretty-prints a change's before and after JSON side by side (the sys_audit_log record page shows old_value / new_value as compact raw text) Setup group_diagnostics, beside nav_audit_logs Contributed by plugin-audit's own navigationContributions (the owner of nav_audit_logs), it lives and dies with the plugin and needs no item gate. From setup-nav.contributions.ts instead: requiresService: 'audit'. The group_diagnostics anchor already requires manage_platform_settings
ai:approvals the AI Approvals queue: the whole AI pending-action queue (/api/v1/ai/pending-actions), with approve / reject Setup group_approvals requiresService: 'ai', the same shape as requiresService: 'approvals' on nav_account_approvals. The anchor already requires manage_platform_settings. ai ships no implementation in the open framework, so without the gate the entry would render a dead page on a Community Edition boot
developer:integrations Integrations & APIs: the environment's REST base URL, per-object endpoints and an x-api-key cURL sample Studio group_developer, beside nav_api_console, nav_flow_runs and nav_public_forms none beyond Studio's studio.access, like its neighbours

The keys resolve to /apps/APP/component/audit/log, /apps/APP/component/ai/approvals and /apps/APP/component/developer/integrations in the console.

Open for this repo's seat, not decided here

  • Two audit entries in Setup. With audit:log added, Setup carries both the sys_audit_log object view (nav_audit_logs) and the page. Keep both, or let the page replace the object entry? That is navigation's call.
  • docs/qa/platform-checklist/FOLLOW-UPS.md row K2 still names objectui's deleted SystemHubPage.tsx for the ungated AI Approvals card. Once ai:approvals is gated by requiresService: 'ai', its "ungated" half is closed, and the row wants a re-read.

Unlock

This card waits for objectui#10520's PR to merge and for the three keys to be registered in the console build objectstack serves: the objectui pin and console overlay must carry that merge. An entry naming an unregistered key renders app-shell's "Component not registered" state. So the order is: the pin moves first, then these entries.

Pin: each entry resolves to its registered page (a componentRef that is registered), and the ai:approvals entry is absent when the ai service is not.

Dedupe

REST page walk over the 1000 most recently updated objectstack items. audit:log, ai:approvals, developer:integrations, AiPendingActions, ai-approvals, and System Hub near nav, entry or orphan ⇒ 0 hits.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:enginepriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions