Skip to content

the built app-shell cluster (rail head/brand lockup PIN-380/340, permission-gated nav filtering, collapse/expand rail +

StageBacklog
StatusDeferred
Design statusIn progress
EstimateM
LinearPIN-45 ↗ PIN-380 ↗ PIN-974 ↗
Linear statusDone · +1 planned
CycleC14
DesignDesign ↗
Linear epicPlatform Foundation
ModuleSettings & Admin ↗

Status check: deferred, but shipped work exists

This surface is marked deferred, yet Linear shows PIN-45 and PIN-380 as Done. Confirm whether it actually shipped (move the status off deferred) or only the remaining scope is deferred. Flagged for reconciliation.

Priority: Medium

Scope

App shell: permission-filtered sidebar and action buttons (hidden, not just disabled, per role), consistent Pinley/Cara branding across the header and FAB, and — pending a locked shell redesign — dynamic per-role module visibility so unfinished modules can stay hidden until ready. (Source: PIN-45, PIN-380 — Loom L-007/L-008; PIN-974 — Aug 20 launch demo.)

Acceptance criteria

  • Sidebar items and action buttons (Add/Edit/Delete) hidden — not just disabled — when the user lacks the required permission
  • Navigating to a permission-denied route shows a "Not Authorized" page instead of blank/broken UI
  • Pinley wordmark and Cara "C" mark consistent across top nav, tab favicon, and the FAB
  • Legacy chat/feedback widget removed app-wide, replaced by Cara
  • Planned: consolidated shell reorganization (e.g. Vendors → "Outreach & RFP") per Conor's design
  • Planned: modules not yet ready stay hidden from navigation until dropped in
  • Planned: role-scoped module visibility (estimators see Bids; PMs see Projects + Field; execs see everything)

Conor's comments

Updated UI and Cara shell. Filtering by role.

Notes

no 'shell built' dev row exists - ROW76/ROW77 are forward nav-IA/route-cleanup and ROW51/ROW71 are reskin/component work, none of which track the shipped shell.