feat: simplify local administrator login

Analysed against 78d133ae10 files changedby 1012839419a-alt
Open PR on GitHub

Change-risk score

9.3out of 10Elevated
Repository health
5.8to6.0base against this head

This change sits in the top third of this repository's own risk distribution, the band worth reviewing closely. It is riskier than 78% of this repository's own commits.

The largest health movement is in app-header.tsx, down 1.9. 33 contracts changed, called by 35 symbols in files this PR does not touch.

Files changed
10
in this diff
Contracts changed
33
removed or signature
Outside callers
35
not in this diff
Findings added
5
3 resolved

Blast radius on the repo map

Every file in the repository, grouped into its own directories and sized by lines. The ones this PR changes are lit, and everything that imports them is marked.

backendchromecompatdocsfrontendiiiopenspecscriptstestsapibrowser_act_packsschemasservicesskillsworkflowdify_gra…appcomponentslibchangesintegrationunitecommercelead-generati…social-listeningintellig…(app)flowprovidersrecordsuiflowworkflowapichannelscontrolpipeline
changed, health fellchanged, health rosechanged, health heldimports a changed fileuntouchedchanged by this PR

Drawing 1,502 of 1,656 files at a readable size, grouped by directory and sized by lines of code. 10 changed here reach 28 more by import. 154 are too small to see at this width, which is what the frame below is for.

Inside backend

agent_runtimesapibrowser_act_packschannelscontrolimage_st…llmmigratio…plan_irpluginsschemassecurityservicesskillsworkflowv1ecommercelead-generat…social-listeningversionsintelligencebrows…cr…opencli_…skil…agen…in…jo…__i…im…inte…cu…pi…exe…val…capa…cont…op…workf…url…image_s…op…plugin…prov…reco…cor…loo…tr…tasks…capabili…compiler…data_ope…dataflow…demand_a…dify_im…ex…fl…hda_tem…htt…int…joy…kat…las…nat…native_intell…nati…no…open…opencli_hd…patcher.pyresea…research_o…runti…runtime_regis…situa…swarm…tool_…trigg…tur…turb…tur…work…brow…cha…co…dashbo…image_st…nodes.…oper…ope…pr…pro…studi…st…ta…work…od…co…report…simula…SK…SK…SK…

630 files, 5 changed by this PR and 18 that import one. This PR changes 9 files in total, spread across more than one top-level directory. Click any directory above to frame it instead.

Changed

Contracts this PR changes

Only symbols that were removed or had their signature changed. An added symbol has no prior callers, and a body-only change leaves the caller's contract intact, so neither is a finding.

useChromePoolremovedfrontend/lib/api/hooks.ts:1041

3 callers outside this PR.

frontend/components/browsers/browser-bindings-panel.tsx::AddBindingDialogfrontend/components/browsers/chrome-instances-panel.tsx::ChromeInstancesPanelfrontend/components/system/chrome-pool-card.tsx::ChromePoolCard
useAddChromeInstanceremovedfrontend/lib/api/hooks.ts:456

1 caller outside this PR.

frontend/components/browsers/chrome-instance-form-dialog.tsx::ChromeInstanceFormDialog
useAdvisoryReportremovedfrontend/lib/api/hooks.ts:1107

1 caller outside this PR.

frontend/app/(app)/control/advisory-report/page.tsx::AdvisoryReportPage
useBrowserBindingsremovedfrontend/lib/api/hooks.ts:492

1 caller outside this PR.

frontend/components/browsers/browser-bindings-panel.tsx::BrowserBindingsPanel
useCeleryStatsremovedfrontend/lib/api/hooks.ts:1033

1 caller outside this PR.

frontend/components/system/celery-stats-card.tsx::CeleryStatsCard
useCreateAgentremovedfrontend/lib/api/hooks.ts:675

1 caller outside this PR.

frontend/components/agents/agent-form-dialog.tsx::AgentFormDialog
useCreateBrowserBindingremovedfrontend/lib/api/hooks.ts:499

1 caller outside this PR.

frontend/components/browsers/browser-bindings-panel.tsx::AddBindingDialog
useCreateNotificationRuleremovedfrontend/lib/api/hooks.ts:766

1 caller outside this PR.

frontend/components/notifications/notification-rule-form-dialog.tsx::NotificationRuleFormDialog
useCreatePlanremovedfrontend/lib/api/hooks.ts:531

1 caller outside this PR.

frontend/components/plans/plan-form-dialog.tsx::PlanFormDialog
useCreateScheduleremovedfrontend/lib/api/hooks.ts:643

1 caller outside this PR.

frontend/components/schedules/schedule-form-dialog.tsx::ScheduleFormDialog
useDeleteAgentremovedfrontend/lib/api/hooks.ts:691

1 caller outside this PR.

frontend/app/(app)/agents/page.tsx::AgentsPage
useDeleteBrowserBindingremovedfrontend/lib/api/hooks.ts:508

1 caller outside this PR.

frontend/components/browsers/browser-bindings-panel.tsx::BrowserBindingsPanel
useDeleteNotificationRuleremovedfrontend/lib/api/hooks.ts:783

1 caller outside this PR.

frontend/app/(app)/notifications/page.tsx::NotificationsPage
useDeletePlanremovedfrontend/lib/api/hooks.ts:548

1 caller outside this PR.

frontend/components/plans/plan-list-panel.tsx::PlanListPanel
useDeleteScheduleremovedfrontend/lib/api/hooks.ts:660

1 caller outside this PR.

frontend/components/schedules/schedule-list-panel.tsx::ScheduleListPanel
useDeleteSourceCredentialremovedfrontend/lib/api/hooks.ts:627

1 caller outside this PR.

frontend/components/sources/source-credentials-panel.tsx::SourceCredentialsPanel
useDismissCorrectionremovedfrontend/lib/api/hooks.ts:740

1 caller outside this PR.

frontend/app/(app)/skills/[id]/page.tsx::SkillDetailPage
useKillSwitchremovedfrontend/lib/api/hooks.ts:1085

1 caller outside this PR.

frontend/app/(app)/control/kill-switch/page.tsx::KillSwitchPage
useOdpStateremovedfrontend/lib/api/hooks.ts:1117

1 caller outside this PR.

frontend/app/(app)/control/odp-state/page.tsx::OdpStatePage
usePlanHealthremovedfrontend/lib/api/hooks.ts:571

1 caller outside this PR.

frontend/components/plans/plan-health-badge.tsx::PlanHealthBadge
useRemoveChromeInstanceremovedfrontend/lib/api/hooks.ts:483

1 caller outside this PR.

frontend/components/browsers/chrome-instances-panel.tsx::ChromeInstancesPanel
useRestartApiremovedfrontend/lib/api/hooks.ts:1027

1 caller outside this PR.

frontend/components/system/restart-api-card.tsx::RestartApiCard
useRollbackSkillremovedfrontend/lib/api/hooks.ts:751

1 caller outside this PR.

frontend/app/(app)/skills/[id]/page.tsx::SkillDetailPage
useRunPlanremovedfrontend/lib/api/hooks.ts:561

1 caller outside this PR.

frontend/components/plans/plan-list-panel.tsx::PlanListPanel
useSetKillSwitchremovedfrontend/lib/api/hooks.ts:1093

1 caller outside this PR.

frontend/app/(app)/control/kill-switch/page.tsx::KillSwitchPage
useSkillremovedfrontend/lib/api/hooks.ts:732

1 caller outside this PR.

frontend/app/(app)/skills/[id]/page.tsx::SkillDetailPage
useSourceCredentialsremovedfrontend/lib/api/hooks.ts:611

1 caller outside this PR.

frontend/components/sources/source-credentials-panel.tsx::SourceCredentialsPanel
useStoreSourceCredentialremovedfrontend/lib/api/hooks.ts:619

1 caller outside this PR.

frontend/components/sources/source-credentials-panel.tsx::AddCredentialDialog
useUpdateAgentremovedfrontend/lib/api/hooks.ts:683

1 caller outside this PR.

frontend/components/agents/agent-form-dialog.tsx::AgentFormDialog
useUpdateChromeInstanceConfigremovedfrontend/lib/api/hooks.ts:469

1 caller outside this PR.

frontend/components/browsers/chrome-instance-form-dialog.tsx::ChromeInstanceFormDialog
useUpdateNotificationRuleremovedfrontend/lib/api/hooks.ts:774

1 caller outside this PR.

frontend/components/notifications/notification-rule-form-dialog.tsx::NotificationRuleFormDialog
useUpdatePlanremovedfrontend/lib/api/hooks.ts:539

1 caller outside this PR.

frontend/components/plans/plan-form-dialog.tsx::PlanFormDialog
useUpdateScheduleremovedfrontend/lib/api/hooks.ts:651

1 caller outside this PR.

frontend/components/schedules/schedule-form-dialog.tsx::ScheduleFormDialog

What this PR added, and what it took away

Introduced findings are the ones inside the lines this PR added, not the file's existing ones. The resolved column is the only place in the product that lists them.

Introduced (5)
  • mediumlarge method
    frontend/components/shell/app-header.tsx:41

    AppHeader is 110 lines long

  • mediumcomplex method
    frontend/components/shell/app-header.tsx:41

    AppHeader has cyclomatic complexity 10

  • mediumbrain method
    frontend/components/shell/app-header.tsx:41

    Brain Method: AppHeader is 110 lines, CCN 10, in a file imported by 20 others

  • mediumdry violation
    tests/integration/test_local_workspace_api.py:5

    37% of file duplicated; worst clone shares 7 lines with tests/integration/test_auth_api.py

  • lowdry violation
    frontend/app/(app)/system/page.tsx:4

    15% of file duplicated; worst clone shares 8 lines with frontend/app/(app)/dashboard/page.tsx

Resolved (3)
  • dry violation
    frontend/components/shell/app-header.tsx
  • dry violation
    backend/api/v1/system.py
  • dry violation
    frontend/app/(app)/dashboard/page.tsx

Who else knows this code

The primary author of each changed file by share of its recent commits, mined from git history. Advisory: it says who has context, not who must review.

  • frontend/scripts/check-login-theme-regressions.mjs2233admin 100% of 4 commits
  • tests/integration/test_auth_api.pyCurry 66% of 4 commits
  • frontend/lib/api/types.tslunnt 55% of 19 commits
  • frontend/app/(app)/operations-agents/page.tsx2233admin 100% of 2 commits
  • frontend/app/(app)/dashboard/page.tsx2233admin 74% of 13 commits

Tests that cover this change

Test files that import a file this PR changes. Not a coverage measurement: it is the import graph, so it says which tests are worth running, not which lines they reach.

  • tests/integration/test_auth_ws.py
  • tests/integration/test_control_api.py
  • tests/integration/test_webhooks_api.py
  • tests/integration/test_image_studio_api.py
  • tests/integration/test_workers_api.py
  • tests/integration/test_workflow_compile_api.py
  • tests/unit/api/test_automations.py
  • tests/unit/api/test_operations_agents.py
  • tests/integration/test_chat_api.py
  • tests/unit/api/test_consumer_grants.py
  • tests/unit/security/test_fleet_auth.py

7 changed files have no test importing them.

Get this on your own pull requests

This page came from an index of 2233admin/opencli-Razormind. No model calls, no configuration, and it refreshes on every push. Install the bot and every pull request gets one of these.