https://github.com/Candi-ai-app/Candi-ai
· scanned 2026-06-17 01:22 UTC (1 month, 2 weeks ago)
38 raw signals (0 security + 38 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -4.9 (diff) · 38 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 717 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
proxy |
software | healthy | proxy.ts:proxy |
bundle |
software | healthy | next.config.ts:bundle |
RootLayout |
software | healthy | app/layout.tsx:RootLayout |
PasswordField |
software | healthy | app/login/client.tsx:PasswordField |
GoogleButton |
software | healthy | app/login/client.tsx:GoogleButton |
ResetLink |
software | healthy | app/login/client.tsx:ResetLink |
HeroPanel |
software | healthy | app/login/client.tsx:HeroPanel |
signIn |
software | healthy | app/login/actions.ts:signIn |
signUp |
software | healthy | app/login/actions.ts:signUp |
signOut |
software | healthy | app/login/actions.ts:signOut |
LoginPage |
software | healthy | app/login/page.tsx:LoginPage |
POST |
software | healthy | app/api/draft/route.ts:POST |
clampInt |
software | healthy | app/api/chat/route.ts:clampInt |
cleanStr |
software | healthy | app/api/chat/route.ts:cleanStr |
countVoters |
software | healthy | app/api/chat/route.ts:countVoters |
voterBreakdown |
software | healthy | app/api/chat/route.ts:voterBreakdown |
rows |
software | healthy | app/api/chat/route.ts:rows |
turfSummary |
software | healthy | app/api/chat/route.ts:turfSummary |
turfs |
software | healthy | app/api/chat/route.ts:turfs |
fieldStats |
software | healthy | app/api/chat/route.ts:fieldStats |
runTool |
software | healthy | app/api/chat/route.ts:runTool |
addUsage |
software | healthy | app/api/chat/route.ts:addUsage |
POST |
software | healthy | app/api/chat/route.ts:POST |
POST |
software | healthy | app/api/onboarding/route.ts:POST |
input |
software | healthy | app/api/onboarding/route.ts:input |
InvitePage |
software | healthy | app/invite/page.tsx:InvitePage |
maybeBootstrapDemoOrg |
software | healthy | app/select/onboarding-actions.ts:maybeBootstrapDemoOrg |
personalMembership |
software | healthy | app/select/onboarding-actions.ts:personalMembership |
roleInCampaignOrg |
software | healthy | app/select/actions.ts:roleInCampaignOrg |
orgId |
software | healthy | app/select/actions.ts:orgId |
selectCampaign |
software | healthy | app/select/actions.ts:selectCampaign |
deleteCampaign |
software | healthy | app/select/actions.ts:deleteCampaign |
updateCampaign |
software | healthy | app/select/actions.ts:updateCampaign |
createCampaign |
software | healthy | app/select/actions.ts:createCampaign |
chosenOrgId |
software | healthy | app/select/actions.ts:chosenOrgId |
eligible |
software | healthy | app/select/actions.ts:eligible |
mulberry32 |
software | healthy | app/select/actions.ts:mulberry32 |
hashSeed |
software | healthy | app/select/actions.ts:hashSeed |
buildSampleVoters |
software | healthy | app/select/actions.ts:buildSampleVoters |
SelectCampaignPage |
software | healthy | app/select/page.tsx:SelectCampaignPage |
hasPersonalOrg |
software | healthy | app/select/page.tsx:hasPersonalOrg |
hasCampaigns |
software | healthy | app/select/page.tsx:hasCampaigns |
NewCampaignPage |
software | healthy | app/select/new/page.tsx:NewCampaignPage |
eligibleOrgs |
software | healthy | app/select/new/page.tsx:eligibleOrgs |
AppLayout |
software | healthy | app/(app)/layout.tsx:AppLayout |
dayKey |
software | healthy | app/(app)/page.tsx:dayKey |
HQPage |
software | healthy | app/(app)/page.tsx:HQPage |
campaignId |
software | healthy | app/(app)/page.tsx:campaignId |
contacts |
software | healthy | app/(app)/page.tsx:contacts |
isReached |
software | healthy | app/(app)/page.tsx:isReached |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
CLAUDE.md |
software | healthy | CLAUDE.md |
AGENTS.md |
software | healthy | AGENTS.md |
pnpm-workspace.yaml |
software | healthy | pnpm-workspace.yaml |
proxy.ts |
software | healthy | proxy.ts |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
README.md |
software | healthy | README.md |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
package.json |
software | healthy | package.json |
.mcp.json |
software | healthy | .mcp.json |
next.config.ts |
software | healthy | next.config.ts |
pnpm-lock.yaml |
software | healthy | pnpm-lock.yaml |
tsconfig.json |
software | healthy | tsconfig.json |
globals.css |
software | healthy | app/globals.css |
layout.tsx |
software | healthy | app/layout.tsx |
signin.css |
software | healthy | app/login/signin.css |
client.tsx |
software | healthy | app/login/client.tsx |
actions.ts |
software | healthy | app/login/actions.ts |
page.tsx |
software | healthy | app/login/page.tsx |
icons.tsx |
software | healthy | app/login/icons.tsx |
route.ts |
software | healthy | app/api/draft/route.ts |
route.ts |
software | healthy | app/api/chat/route.ts |
route.ts |
software | healthy | app/api/onboarding/route.ts |
page.tsx |
software | healthy | app/invite/page.tsx |
onboarding-actions.ts |
software | healthy | app/select/onboarding-actions.ts |
actions.ts |
software | healthy | app/select/actions.ts |
page.tsx |
software | healthy | app/select/page.tsx |
page.tsx |
software | healthy | app/select/new/page.tsx |
layout.tsx |
software | healthy | app/(app)/layout.tsx |
page.tsx |
software | healthy | app/(app)/page.tsx |
actions.ts |
software | healthy | app/(app)/field/actions.ts |
page.tsx |
software | healthy | app/(app)/field/page.tsx |
page.tsx |
software | healthy | app/(app)/scripts/page.tsx |
page.tsx |
software | healthy | app/(app)/texting/page.tsx |
actions.ts |
software | healthy | app/(app)/forms/actions.ts |
page.tsx |
software | healthy | app/(app)/forms/page.tsx |
actions.ts |
software | healthy | app/(app)/team/actions.ts |
page.tsx |
software | healthy | app/(app)/team/page.tsx |
actions.ts |
software | healthy | app/(app)/canvassing/actions.ts |
page.tsx |
software | healthy | app/(app)/canvassing/page.tsx |
actions.ts |
software | healthy | app/(app)/voters/actions.ts |
page.tsx |
software | healthy | app/(app)/voters/page.tsx |
mocks.tsx |
software | healthy | app/welcome/mocks.tsx |
leaflet.d.ts |
software | healthy | app/welcome/leaflet.d.ts |
page.tsx |
software | healthy | app/welcome/page.tsx |
icons.tsx |
software | healthy | app/welcome/icons.tsx |
landing.css |
software | healthy | app/welcome/landing.css |
enrich-van-districts.mjs |
software | healthy | scripts/enrich-van-districts.mjs |
enrich-voter-van.mjs |
software | healthy | scripts/enrich-voter-van.mjs |
import-precincts.mjs |
software | healthy | scripts/import-precincts.mjs |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
app |
software | healthy | app |
login |
software | healthy | app/login |
api |
software | healthy | app/api |
draft |
software | healthy | app/api/draft |
chat |
software | healthy | app/api/chat |
onboarding |
software | healthy | app/api/onboarding |
invite |
software | healthy | app/invite |
select |
software | healthy | app/select |
new |
software | healthy | app/select/new |
(app) |
software | healthy | app/(app) |
field |
software | healthy | app/(app)/field |
scripts |
software | healthy | app/(app)/scripts |
texting |
software | healthy | app/(app)/texting |
forms |
software | healthy | app/(app)/forms |
team |
software | healthy | app/(app)/team |
canvassing |
software | healthy | app/(app)/canvassing |
voters |
software | healthy | app/(app)/voters |
welcome |
software | healthy | app/welcome |
scripts |
software | healthy | scripts |
utils |
software | healthy | utils |
supabase |
software | healthy | utils/supabase |
components |
software | healthy | components |
field |
software | healthy | components/field |
scripts |
software | healthy | components/scripts |
texting |
software | healthy | components/texting |
forms |
software | healthy | components/forms |
team |
software | healthy | components/team |
select |
software | healthy | components/select |
onboarding |
software | healthy | components/onboarding |
canvassing |
software | healthy | components/canvassing |
voters |
software | healthy | components/voters |
ui |
software | healthy | components/ui |
hq |
software | healthy | components/hq |
docs |
software | healthy | docs |
plans |
software | healthy | docs/plans |
supabase |
software | healthy | supabase |
migrations |
software | healthy | supabase/migrations |
lib |
software | healthy | lib |
forms |
software | healthy | lib/forms |
onboarding |
software | healthy | lib/onboarding |
public |
software | healthy | public |
geo |
software | healthy | public/geo |
| Label | Layer | Status | Path |
|---|---|---|---|
20260531060000_create_turf_counts.sql |
data | healthy | supabase/migrations/20260531060000_create_turf_counts.sql |
20260531110000_voter_email.sql |
data | healthy | supabase/migrations/20260531110000_voter_email.sql |
20260604020000_canvasser_locations.sql |
data | healthy | supabase/migrations/20260604020000_canvasser_locations.sql |
20260531070000_seed_contacts.sql |
data | healthy | supabase/migrations/20260531070000_seed_contacts.sql |
20260602000000_turf_route.sql |
data | healthy | supabase/migrations/20260602000000_turf_route.sql |
20260531050000_voter_points_rpc.sql |
data | healthy | supabase/migrations/20260531050000_voter_points_rpc.sql |
20260531000000_turf_rpc.sql |
data | healthy | supabase/migrations/20260531000000_turf_rpc.sql |
20260530000001_seed.sql |
data | healthy | supabase/migrations/20260530000001_seed.sql |
20260531040000_voter_geom_backfill.sql |
data | healthy | supabase/migrations/20260531040000_voter_geom_backfill.sql |
20260613000000_tenant_isolation.sql |
data | healthy | supabase/migrations/20260613000000_tenant_isolation.sql |
20260531020000_campaign_area.sql |
data | healthy | supabase/migrations/20260531020000_campaign_area.sql |
20260531090000_campaign_photo.sql |
data | healthy | supabase/migrations/20260531090000_campaign_photo.sql |
20260603000000_voter_districts.sql |
data | healthy | supabase/migrations/20260603000000_voter_districts.sql |
20260613000100_precinct_crosswalk.sql |
data | healthy | supabase/migrations/20260613000100_precinct_crosswalk.sql |
20260531120000_voter_address_idx.sql |
data | healthy | supabase/migrations/20260531120000_voter_address_idx.sql |
20260531000001_auth.sql |
data | healthy | supabase/migrations/20260531000001_auth.sql |
20260530000000_init.sql |
data | healthy | supabase/migrations/20260530000000_init.sql |
20260611000000_precincts.sql |
data | healthy | supabase/migrations/20260611000000_precincts.sql |
20260601010000_voter_van_enrich.sql |
data | healthy | supabase/migrations/20260601010000_voter_van_enrich.sql |
20260604010000_voter_points_names.sql |
data | healthy | supabase/migrations/20260604010000_voter_points_names.sql |
20260531030000_voter_demographics.sql |
data | healthy | supabase/migrations/20260531030000_voter_demographics.sql |
20260531130000_isolate_real_org.sql |
data | healthy | supabase/migrations/20260531130000_isolate_real_org.sql |
20260531010000_seed_campaign2.sql |
data | healthy | supabase/migrations/20260531010000_seed_campaign2.sql |
20260612000000_forms.sql |
data | healthy | supabase/migrations/20260612000000_forms.sql |
20260531100000_tag_voters_rpc.sql |
data | healthy | supabase/migrations/20260531100000_tag_voters_rpc.sql |
20260613000300_scale_ops.sql |
data | healthy | supabase/migrations/20260613000300_scale_ops.sql |
20260604000000_split_turf.sql |
data | healthy | supabase/migrations/20260604000000_split_turf.sql |
20260613000200_invites.sql |
data | healthy | supabase/migrations/20260613000200_invites.sql |
20260601000000_voter_analytics_rpcs.sql |
data | healthy | supabase/migrations/20260601000000_voter_analytics_rpcs.sql |
20260531080000_fix_voter_surnames.sql |
data | healthy | supabase/migrations/20260531080000_fix_voter_surnames.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
RootLayout |
frontend | healthy | app/layout.tsx |
InvitePage |
frontend | healthy | app/invite/page.tsx |
TextingPage |
frontend | healthy | app/(app)/texting/page.tsx |
WelcomePage |
frontend | healthy | app/welcome/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
names |
software | healthy | app/welcome/mocks.tsx:names |
names |
software | healthy | app/welcome/page.tsx:names |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | app/(app)/voters/actions.ts |
postgresql |
data | healthy | scripts/import-precincts.mjs |
| Label | Layer | Status | Path |
|---|---|---|---|
port:64 |
network | healthy | pnpm-lock.yaml |
port:16 |
network | healthy | pnpm-lock.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | supabase/config.toml |
vps::aws |
hardware | healthy | supabase/config.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::scripts/verify-demo-campaign.mjs |
security | healthy | scripts/verify-demo-campaign.mjs |
password_literal::scripts/seed-users.mjs |
security | healthy | scripts/seed-users.mjs |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::supabase/config.toml |
security | healthy | supabase/config.toml |
auth::app/login/client.tsx |
security | healthy | app/login/client.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
Candi-ai-app__Candi-ai |
software | healthy | /data/fable5_failed_archive/Candi-ai-app__Candi-ai |
| Label | Layer | Status | Path |
|---|---|---|---|
public |
data | healthy | supabase/migrations/20260604020000_canvasser_locations.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
/ |
frontend | healthy | app/select/actions.ts |
This page is publicly accessible at:
https://repobility.com/scan/87ceaf9e-50df-42b0-93ee-f919b44a89a5/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/87ceaf9e-50df-42b0-93ee-f919b44a89a5/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.