https://github.com/zurabest/pulse
· scanned 2026-06-16 01:14 UTC (2 months, 1 week ago)
333 raw signals (0 security + 333 graph)
Last scanned 2 months, 1 week ago · v1 · 308 actionable findings from 1 signal source. 25 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 5507 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 |
|---|---|---|---|
_normalize_psycopg |
software | healthy | apps/cadence-worker/tests/conftest.py:16 |
event_loop |
software | healthy | apps/cadence-worker/tests/conftest.py:23 |
pg_url |
software | healthy | apps/cadence-worker/tests/conftest.py:30 |
session |
software | healthy | apps/cadence-worker/tests/conftest.py:53 |
__init__ |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:12 |
embed |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:16 |
test_backfill_fills_missing_and_skips_fresh |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:23 |
test_backfill_does_not_starve_stale_rows_below_fresh_window |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:81 |
test_backfill_short_circuits_on_budget |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:1… |
_seed_task |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:14 |
_count_notifications |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:33 |
test_task_due_in_30min_enqueues_1h_reminder |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:44 |
test_task_due_in_12h_enqueues_24h_reminder |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:62 |
test_two_ticks_do_not_duplicate |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:80 |
test_completed_task_does_not_remind |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:99 |
test_task_without_due_at_is_skipped |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:120 |
test_user_with_muted_kind_does_not_get_notified |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py:140 |
_seed_graph |
software | healthy | apps/cadence-worker/tests/test_jobs.py:18 |
__init__ |
software | healthy | apps/cadence-worker/tests/test_jobs.py:87 |
__aenter__ |
software | healthy | apps/cadence-worker/tests/test_jobs.py:88 |
__aexit__ |
software | healthy | apps/cadence-worker/tests/test_jobs.py:89 |
test_cadence_on_message_replied_within_advances_to_close |
software | healthy | apps/cadence-worker/tests/test_jobs.py:92 |
test_cadence_on_message_unassigned_conv_advances_and_emits_… |
software | healthy | apps/cadence-worker/tests/test_jobs.py:123 |
test_cadence_tick_fires_silent_for_after_5d |
software | healthy | apps/cadence-worker/tests/test_jobs.py:168 |
now |
software | healthy | apps/cadence-worker/tests/test_jobs.py:189 |
test_cadence_on_message_paused_state_skipped |
software | healthy | apps/cadence-worker/tests/test_jobs.py:208 |
_set_org_settings |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:15 |
_seed_user |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:29 |
_seed_task |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:43 |
_count_daily_digest |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:59 |
test_overdue_task_enqueues_digest |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:68 |
test_dedup_key_uses_org_local_date |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:103 |
now |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:128 |
test_off_hour_skips |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:164 |
test_disabled_skips |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:186 |
test_second_tick_does_not_duplicate |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:207 |
test_user_with_no_pending_work_gets_no_digest |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:227 |
_enqueue_notification |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/task_reminders… |
task_reminders_tick |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/task_reminders… |
get_settings |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/config.py:18 |
_body |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/daily_digest.p… |
_has_pending |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/daily_digest.p… |
daily_digest_tick |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/daily_digest.p… |
cadence_on_message |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/jobs.py:22 |
cadence_tick |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/jobs.py:41 |
_evaluate_one |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/jobs.py:63 |
startup |
software | dead | apps/cadence-worker/src/pulse_cadence_worker/main.py:13 |
shutdown |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/main.py:20 |
_cron_seconds |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/main.py:28 |
_cron_minutes |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/main.py:35 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
pnpm-workspace.yaml |
software | healthy | pnpm-workspace.yaml |
pyproject.toml |
software | healthy | pyproject.toml |
Makefile |
software | healthy | Makefile |
test_caddy_routing.sh |
software | healthy | tests/test_caddy_routing.sh |
test_pg_backup_dry_run.sh |
software | healthy | tests/test_pg_backup_dry_run.sh |
Dockerfile |
software | healthy | apps/cadence-worker/Dockerfile |
pyproject.toml |
software | healthy | apps/cadence-worker/pyproject.toml |
__init__.py |
software | healthy | apps/cadence-worker/tests/__init__.py |
conftest.py |
software | healthy | apps/cadence-worker/tests/conftest.py |
test_embedding_backfill_cron.py |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py |
test_task_reminders.py |
software | healthy | apps/cadence-worker/tests/test_task_reminders.py |
test_jobs.py |
software | healthy | apps/cadence-worker/tests/test_jobs.py |
test_daily_digest.py |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py |
task_reminders.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/task_reminders… |
__init__.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/__init__.py |
config.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/config.py |
daily_digest.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/daily_digest.py |
jobs.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/jobs.py |
main.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/main.py |
embedding_backfill_cron.py |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/embedding_back… |
README.md |
software | healthy | apps/api/README.md |
CLAUDE.md |
software | healthy | apps/api/CLAUDE.md |
Dockerfile |
software | healthy | apps/api/Dockerfile |
pyproject.toml |
software | healthy | apps/api/pyproject.toml |
test_dashboard_routes.py |
software | healthy | apps/api/tests/test_dashboard_routes.py |
test_share_to_manager.py |
software | healthy | apps/api/tests/test_share_to_manager.py |
test_tasks_priority.py |
software | healthy | apps/api/tests/test_tasks_priority.py |
test_limits.py |
software | healthy | apps/api/tests/test_limits.py |
test_conversation_summary_endpoints.py |
software | healthy | apps/api/tests/test_conversation_summary_endpoints.py |
test_me_budget.py |
software | healthy | apps/api/tests/test_me_budget.py |
test_ai_routes_get.py |
software | healthy | apps/api/tests/test_ai_routes_get.py |
test_tasks_deadline_validation.py |
software | healthy | apps/api/tests/test_tasks_deadline_validation.py |
test_conversations_semantic_search.py |
software | healthy | apps/api/tests/test_conversations_semantic_search.py |
test_me_shares.py |
software | healthy | apps/api/tests/test_me_shares.py |
test_ops_limits.py |
software | healthy | apps/api/tests/test_ops_limits.py |
test_people_acl.py |
software | healthy | apps/api/tests/test_people_acl.py |
test_people_soft_delete.py |
software | healthy | apps/api/tests/test_people_soft_delete.py |
__init__.py |
software | healthy | apps/api/tests/__init__.py |
test_search_route.py |
software | healthy | apps/api/tests/test_search_route.py |
conftest.py |
software | healthy | apps/api/tests/conftest.py |
test_admin_ingest.py |
software | healthy | apps/api/tests/test_admin_ingest.py |
test_admin_invites_guard.py |
software | healthy | apps/api/tests/test_admin_invites_guard.py |
test_admin_grants_listing.py |
software | healthy | apps/api/tests/test_admin_grants_listing.py |
test_tasks_admin_edit_any.py |
software | healthy | apps/api/tests/test_tasks_admin_edit_any.py |
test_share_flow_e2e.py |
software | healthy | apps/api/tests/test_share_flow_e2e.py |
test_people_search_acl.py |
software | healthy | apps/api/tests/test_people_search_acl.py |
test_projects.py |
software | healthy | apps/api/tests/test_projects.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_StubLLMClient |
software | healthy | apps/cadence-worker/tests/test_embedding_backfill_cron.py:11 |
_Cm |
software | healthy | apps/cadence-worker/tests/test_jobs.py:86 |
_FrozenDt |
software | healthy | apps/cadence-worker/tests/test_jobs.py:187 |
_FrozenDatetime |
software | healthy | apps/cadence-worker/tests/test_daily_digest.py:126 |
Settings |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/config.py:6 |
WorkerSettings |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/main.py:47 |
_EmbedClient |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/embedding_back… |
_PulseLLMEmbedClient |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker/embedding_back… |
_LLMResult |
software | healthy | apps/api/tests/test_conversation_summary_endpoints.py:15 |
_StubClient |
software | healthy | apps/api/tests/test_conversation_summary_endpoints.py:21 |
_Resp |
software | healthy | apps/api/tests/test_ops_limits.py:81 |
_Client |
software | healthy | apps/api/tests/test_ops_limits.py:90 |
_StubLLMResult |
software | healthy | apps/api/tests/test_search_route.py:23 |
_StubClient |
software | healthy | apps/api/tests/test_search_route.py:29 |
_Resp |
software | healthy | apps/api/tests/test_projects.py:1514 |
_Client |
software | healthy | apps/api/tests/test_projects.py:1818 |
_Resp |
software | healthy | apps/api/tests/test_send_attachments_api.py:41 |
_Client |
software | healthy | apps/api/tests/test_send_attachments_api.py:52 |
_StubLLMResult |
software | healthy | apps/api/tests/test_search_routes.py:24 |
_StubClient |
software | healthy | apps/api/tests/test_search_routes.py:30 |
_StubResp |
software | healthy | apps/api/tests/test_ai_draft_picks.py:154 |
_StubClient |
software | healthy | apps/api/tests/test_ai_draft_picks.py:161 |
_Resp |
software | healthy | apps/api/tests/test_conversations_project_filter.py:236 |
_Client |
software | healthy | apps/api/tests/test_conversations_project_filter.py:251 |
_StubResp |
software | healthy | apps/api/tests/test_conversation_backfill.py:53 |
_StubClient |
software | healthy | apps/api/tests/test_conversation_backfill.py:147 |
_FakeAuth |
software | healthy | apps/api/tests/test_admin_tg.py:117 |
_StubResp |
software | healthy | apps/api/tests/test_admin_tg.py:184 |
_StubClient |
software | healthy | apps/api/tests/test_admin_tg.py:188 |
_ExplodingClient |
software | healthy | apps/api/tests/test_admin_tg.py:218 |
_StubResp |
software | healthy | apps/api/tests/test_folders.py:574 |
_StubClient |
software | healthy | apps/api/tests/test_folders.py:619 |
_StubResp |
software | healthy | apps/api/tests/test_ai_reply_suggestions.py:279 |
_StubClient |
software | healthy | apps/api/tests/test_ai_reply_suggestions.py:286 |
_FakeAuth |
software | healthy | apps/api/tests/test_me_tg.py:692 |
_FakeAuthOK |
software | healthy | apps/api/tests/test_me_tg.py:740 |
_StubResp |
software | healthy | apps/api/tests/test_me_tg.py:763 |
_StubClient |
software | healthy | apps/api/tests/test_me_tg.py:767 |
_ExplodingClient |
software | healthy | apps/api/tests/test_me_tg.py:800 |
_StubLLMResult |
software | healthy | apps/api/tests/test_semantic_search_real.py:16 |
_StubClient |
software | healthy | apps/api/tests/test_semantic_search_real.py:22 |
_BranchingStub |
software | healthy | apps/api/tests/test_semantic_search_real.py:239 |
_Resp |
software | healthy | apps/api/tests/test_cadence_attachments.py:43 |
_Client |
software | healthy | apps/api/tests/test_cadence_attachments.py:51 |
_R |
software | healthy | apps/api/tests/test_auth.py:26 |
FakeSession |
software | healthy | apps/api/tests/test_auth.py:30 |
_Caller |
software | healthy | apps/api/tests/test_people_cadence.py:344 |
_StubResp |
software | healthy | apps/api/tests/test_tasks.py:394 |
_StubClient |
software | healthy | apps/api/tests/test_tasks.py:401 |
_Stub |
software | healthy | apps/api/tests/test_cadence_ai_suggest.py:37 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /healthz |
api | healthy | apps/api/src/pulse_api/main.py |
GET /admin/tg-accounts |
api | healthy | apps/api/src/pulse_api/routes/admin_tg.py |
POST /admin/tg-accounts/start |
api | healthy | apps/api/src/pulse_api/routes/admin_tg.py |
POST /admin/tg-accounts/complete |
api | healthy | apps/api/src/pulse_api/routes/admin_tg.py |
POST /admin/tg-accounts/import |
api | healthy | apps/api/src/pulse_api/routes/admin_tg.py |
DELETE /admin/tg-accounts/{account_id} |
api | healthy | apps/api/src/pulse_api/routes/admin_tg.py |
GET /projects |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
GET /projects/starters |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/apply-starter |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
GET /projects/{project_id} |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
PATCH /projects/{project_id} |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
DELETE /projects/{project_id} |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
PATCH /projects/{project_id}/members/{person_id} |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
DELETE /projects/{project_id}/members/{person_id} |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/bulk-delete |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/sync-members |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/curate |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/{person_id}/draft |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/{person_id}/cadence-dra… |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/{person_id}/cadence-ref… |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/{person_id}/cadence-adv… |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/members/{person_id}/cadence-send |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
POST /projects/{project_id}/enhance-field |
api | healthy | apps/api/src/pulse_api/routes/projects.py |
GET /admin/tg-accounts/{account_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_account_acl.py |
POST /admin/tg-accounts/{account_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_account_acl.py |
POST /admin/tg-accounts/{account_id}/access/bulk |
api | healthy | apps/api/src/pulse_api/routes/admin_account_acl.py |
DELETE /admin/tg-accounts/{account_id}/access/{user_id} |
api | healthy | apps/api/src/pulse_api/routes/admin_account_acl.py |
GET /limits/usage |
api | healthy | apps/api/src/pulse_api/routes/limits.py |
GET /admin/folders/{folder_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_folder_acl.py |
POST /admin/folders/{folder_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_folder_acl.py |
POST /admin/folders/{folder_id}/access/bulk |
api | healthy | apps/api/src/pulse_api/routes/admin_folder_acl.py |
DELETE /admin/folders/{folder_id}/access/{user_id} |
api | healthy | apps/api/src/pulse_api/routes/admin_folder_acl.py |
GET /admin/people/{person_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_people_acl.py |
POST /admin/people/{person_id}/access |
api | healthy | apps/api/src/pulse_api/routes/admin_people_acl.py |
DELETE /admin/people/{person_id}/access/{user_id} |
api | healthy | apps/api/src/pulse_api/routes/admin_people_acl.py |
GET /admin/org-settings |
api | healthy | apps/api/src/pulse_api/routes/org_settings.py |
PUT /admin/org-settings |
api | healthy | apps/api/src/pulse_api/routes/org_settings.py |
PUT /admin/ai-conveyor-paused |
api | healthy | apps/api/src/pulse_api/routes/org_settings.py |
GET /me/tg-accounts |
api | healthy | apps/api/src/pulse_api/routes/me_tg.py |
GET /me/tg-accounts/mine |
api | healthy | apps/api/src/pulse_api/routes/me_tg.py |
POST /me/tg-accounts/start |
api | healthy | apps/api/src/pulse_api/routes/me_tg.py |
POST /me/tg-accounts/complete |
api | healthy | apps/api/src/pulse_api/routes/me_tg.py |
DELETE /me/tg-accounts/{account_id} |
api | healthy | apps/api/src/pulse_api/routes/me_tg.py |
GET /contacts |
api | healthy | apps/api/src/pulse_api/routes/legacy.py |
GET /contacts/search |
api | healthy | apps/api/src/pulse_api/routes/legacy.py |
GET /contacts/{contact_id} |
api | healthy | apps/api/src/pulse_api/routes/legacy.py |
POST /cadences/{project_id}/ai-suggest |
api | healthy | apps/api/src/pulse_api/routes/cadence_ai_suggest.py |
POST /conversations/{conv_id}/lock |
api | healthy | apps/api/src/pulse_api/routes/soft_locks.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
apps |
software | healthy | apps |
cadence-worker |
software | healthy | apps/cadence-worker |
tests |
software | healthy | apps/cadence-worker/tests |
src |
software | healthy | apps/cadence-worker/src |
pulse_cadence_worker |
software | healthy | apps/cadence-worker/src/pulse_cadence_worker |
api |
software | healthy | apps/api |
tests |
software | healthy | apps/api/tests |
src |
software | healthy | apps/api/src |
pulse_api |
software | healthy | apps/api/src/pulse_api |
routes |
software | healthy | apps/api/src/pulse_api/routes |
ai-worker |
software | healthy | apps/ai-worker |
tests |
software | healthy | apps/ai-worker/tests |
src |
software | healthy | apps/ai-worker/src |
pulse_ai_worker |
software | healthy | apps/ai-worker/src/pulse_ai_worker |
tasks |
software | healthy | apps/ai-worker/src/pulse_ai_worker/tasks |
prompts |
software | healthy | apps/ai-worker/src/pulse_ai_worker/prompts |
tg-worker |
software | healthy | apps/tg-worker |
tests |
software | healthy | apps/tg-worker/tests |
src |
software | healthy | apps/tg-worker/src |
pulse_tg_worker |
software | healthy | apps/tg-worker/src/pulse_tg_worker |
web |
software | healthy | apps/web |
__tests__ |
software | healthy | apps/web/__tests__ |
components |
software | healthy | apps/web/components |
settings |
software | healthy | apps/web/components/settings |
__tests__ |
software | healthy | apps/web/components/settings/__tests__ |
__tests__ |
software | healthy | apps/web/components/__tests__ |
help |
software | healthy | apps/web/components/help |
__tests__ |
software | healthy | apps/web/components/help/__tests__ |
notifications |
software | healthy | apps/web/components/notifications |
__tests__ |
software | healthy | apps/web/components/notifications/__tests__ |
i18n |
software | healthy | apps/web/components/i18n |
__tests__ |
software | healthy | apps/web/components/i18n/__tests__ |
projects |
software | healthy | apps/web/components/projects |
__tests__ |
software | healthy | apps/web/components/projects/__tests__ |
ui |
software | healthy | apps/web/components/ui |
__tests__ |
software | healthy | apps/web/components/ui/__tests__ |
dashboard |
software | healthy | apps/web/components/dashboard |
__tests__ |
software | healthy | apps/web/components/dashboard/__tests__ |
chats |
software | healthy | apps/web/components/chats |
__tests__ |
software | healthy | apps/web/components/chats/__tests__ |
cadence-wizard |
software | healthy | apps/web/components/cadence-wizard |
__tests__ |
software | healthy | apps/web/components/cadence-wizard/__tests__ |
keyboard |
software | healthy | apps/web/components/keyboard |
__tests__ |
software | healthy | apps/web/components/keyboard/__tests__ |
tasks |
software | healthy | apps/web/components/tasks |
__tests__ |
software | healthy | apps/web/components/tasks/__tests__ |
admin |
software | healthy | apps/web/components/admin |
__tests__ |
software | healthy | apps/web/components/admin/__tests__ |
me-grants |
software | healthy | apps/web/components/me-grants |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
contact_embeddings |
data | healthy | packages/db/src/pulse_db/migrations/versions/0005_ai_convey… |
person_profiles |
data | healthy | packages/db/src/pulse_db/migrations/versions/0010_conversat… |
person_embeddings |
data | healthy | packages/db/src/pulse_db/migrations/versions/0010_conversat… |
contact_profiles |
data | healthy | packages/db/src/pulse_db/migrations/versions/0010_conversat… |
Base |
data | healthy | packages/db/src/pulse_db/base.py |
Topic |
data | healthy | packages/db/src/pulse_db/models/topic.py |
topics |
data | healthy | packages/db/src/pulse_db/models/topic.py |
OrgSettings |
data | healthy | packages/db/src/pulse_db/models/org.py |
org_settings |
data | healthy | packages/db/src/pulse_db/models/org.py |
Broadcast |
data | healthy | packages/db/src/pulse_db/models/broadcast.py |
BroadcastRecipient |
data | healthy | packages/db/src/pulse_db/models/broadcast.py |
broadcasts |
data | healthy | packages/db/src/pulse_db/models/broadcast.py |
broadcast_recipients |
data | healthy | packages/db/src/pulse_db/models/broadcast.py |
AclGrant |
data | healthy | packages/db/src/pulse_db/models/acl.py |
acl_grants |
data | healthy | packages/db/src/pulse_db/models/acl.py |
Person |
data | healthy | packages/db/src/pulse_db/models/person.py |
ConversationMember |
data | healthy | packages/db/src/pulse_db/models/person.py |
people |
data | healthy | packages/db/src/pulse_db/models/person.py |
conversation_members |
data | healthy | packages/db/src/pulse_db/models/person.py |
Conversation |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
Message |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
MessageAttachment |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
BackfillState |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
conversations |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
messages |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
message_attachments |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
backfill_state |
data | healthy | packages/db/src/pulse_db/models/telegram.py |
PersonProfile |
data | healthy | packages/db/src/pulse_db/models/ai.py |
PersonEmbedding |
data | healthy | packages/db/src/pulse_db/models/ai.py |
AIRun |
data | healthy | packages/db/src/pulse_db/models/ai.py |
LLMRoute |
data | healthy | packages/db/src/pulse_db/models/ai.py |
person_profiles |
data | healthy | packages/db/src/pulse_db/models/ai.py |
person_embeddings |
data | healthy | packages/db/src/pulse_db/models/ai.py |
ai_runs |
data | healthy | packages/db/src/pulse_db/models/ai.py |
llm_routes |
data | healthy | packages/db/src/pulse_db/models/ai.py |
TGAccount |
data | healthy | packages/db/src/pulse_db/models/tg_account.py |
tg_accounts |
data | healthy | packages/db/src/pulse_db/models/tg_account.py |
SoftLock |
data | healthy | packages/db/src/pulse_db/models/soft_lock.py |
soft_locks |
data | healthy | packages/db/src/pulse_db/models/soft_lock.py |
Project |
data | healthy | packages/db/src/pulse_db/models/project.py |
ProjectMember |
data | healthy | packages/db/src/pulse_db/models/project.py |
ProjectManager |
data | healthy | packages/db/src/pulse_db/models/project.py |
projects |
data | healthy | packages/db/src/pulse_db/models/project.py |
project_members |
data | healthy | packages/db/src/pulse_db/models/project.py |
project_managers |
data | healthy | packages/db/src/pulse_db/models/project.py |
CadenceStepAttachment |
data | healthy | packages/db/src/pulse_db/models/cadence.py |
CadenceGraph |
data | healthy | packages/db/src/pulse_db/models/cadence.py |
CadenceNode |
data | healthy | packages/db/src/pulse_db/models/cadence.py |
CadenceEdge |
data | healthy | packages/db/src/pulse_db/models/cadence.py |
MemberCadenceState |
data | healthy | packages/db/src/pulse_db/models/cadence.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test_migrations.py |
data | healthy | packages/db/tests/test_migrations.py |
env.py |
data | healthy | packages/db/src/pulse_db/migrations/env.py |
0055_repair_polluted_tg_username.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0055_repair_po… |
0014_drip_cadence.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0014_drip_cade… |
0017_tasks.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0017_tasks.py |
0006_embeddings_768d.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0006_embedding… |
0049_repair_dm_display_name.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0049_repair_dm… |
0019_cadence_graphs.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0019_cadence_g… |
0001_initial.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0001_initial.py |
0030_tasks_manual_only.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0030_tasks_man… |
0063_folders_pending_peers.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0063_folders_p… |
0038_acl_grants_note_ack.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0038_acl_grant… |
0025_backfill_chat_display_name.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0025_backfill_… |
0060_broadcasts.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0060_broadcast… |
0021_conversation_per_account.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0021_conversat… |
0011_project_outreach.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0011_project_o… |
0062_drop_action_items.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0062_drop_acti… |
0048_messages_text_trgm.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0048_messages_… |
0008_contact_kind.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0008_contact_k… |
0003_users_text_id_and_defaults.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0003_users_tex… |
0068_lead_status_probe_indexes.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0068_lead_stat… |
0031_allowlist_invite_extras.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0031_allowlist… |
0009_message_sender.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0009_message_s… |
0067_acl_grants_unique.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0067_acl_grant… |
0046_llm_routes.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0046_llm_route… |
0050_chat_states_hidden_at.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0050_chat_stat… |
0022_richer_peer_metadata.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0022_richer_pe… |
0053_ai_conveyor_paused.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0053_ai_convey… |
0058_acl_grants_expires_at.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0058_acl_grant… |
0013_action_items.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0013_action_it… |
0043_conversation_summaries.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0043_conversat… |
0027_project_managers.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0027_project_m… |
0005_ai_conveyor_tables.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0005_ai_convey… |
0036_ai_draft_batches.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0036_ai_draft_… |
0065_broadcast_attachments.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0065_broadcast… |
0015_multi_tg_acl.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0015_multi_tg_… |
0028_cadence_auto_enroll.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0028_cadence_a… |
0032_dm_peer_conversation_members.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0032_dm_peer_c… |
0020_topics.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0020_topics.py |
0047_org_settings.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0047_org_setti… |
0040_people_manual_notes.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0040_people_ma… |
0064_org_ops_limits.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0064_org_ops_l… |
0034_chat_states.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0034_chat_stat… |
0023_message_reactions.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0023_message_r… |
0044_tasks_priority.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0044_tasks_pri… |
0035_user_prefs.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0035_user_pref… |
0029_messages_read_at.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0029_messages_… |
0059_per_account_backfill_state.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0059_per_accou… |
0052_fixed_llm_route_models.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0052_fixed_llm… |
0054_scanning_to_openai.py |
data | healthy | packages/db/src/pulse_db/migrations/versions/0054_scanning_… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | apps/web/app/page.tsx |
/login |
frontend | healthy | apps/web/app/login/page.tsx |
/(authed)/settings |
frontend | healthy | apps/web/app/(authed)/settings/page.tsx |
/(authed)/settings/tg-connect |
frontend | healthy | apps/web/app/(authed)/settings/tg-connect/page.tsx |
/(authed)/help |
frontend | healthy | apps/web/app/(authed)/help/page.tsx |
/(authed)/projects |
frontend | healthy | apps/web/app/(authed)/projects/page.tsx |
/(authed)/projects/[id] |
frontend | healthy | apps/web/app/(authed)/projects/[id]/page.tsx |
/(authed)/dashboard |
frontend | healthy | apps/web/app/(authed)/dashboard/page.tsx |
/(authed)/chats |
frontend | healthy | apps/web/app/(authed)/chats/page.tsx |
/(authed)/chats/[id] |
frontend | healthy | apps/web/app/(authed)/chats/[id]/page.tsx |
/(authed)/tasks |
frontend | healthy | apps/web/app/(authed)/tasks/page.tsx |
/(authed)/admin |
frontend | healthy | apps/web/app/(authed)/admin/page.tsx |
/(authed)/admin/users |
frontend | healthy | apps/web/app/(authed)/admin/users/page.tsx |
/(authed)/admin/dashboard |
frontend | healthy | apps/web/app/(authed)/admin/dashboard/page.tsx |
/(authed)/admin/ingest |
frontend | healthy | apps/web/app/(authed)/admin/ingest/page.tsx |
/(authed)/admin/tg |
frontend | healthy | apps/web/app/(authed)/admin/tg/page.tsx |
/(authed)/admin/tg/new |
frontend | healthy | apps/web/app/(authed)/admin/tg/new/page.tsx |
/(authed)/admin/folders |
frontend | healthy | apps/web/app/(authed)/admin/folders/page.tsx |
/(authed)/admin/grants |
frontend | healthy | apps/web/app/(authed)/admin/grants/page.tsx |
/(authed)/admin/invites |
frontend | healthy | apps/web/app/(authed)/admin/invites/page.tsx |
/(authed)/me/notifications |
frontend | healthy | apps/web/app/(authed)/me/notifications/page.tsx |
/(authed)/me/grants |
frontend | healthy | apps/web/app/(authed)/me/grants/page.tsx |
/(authed)/folders |
frontend | healthy | apps/web/app/(authed)/folders/page.tsx |
/(authed)/broadcasts |
frontend | healthy | apps/web/app/(authed)/broadcasts/page.tsx |
/(authed)/broadcasts/[id] |
frontend | healthy | apps/web/app/(authed)/broadcasts/[id]/page.tsx |
/(authed)/cadences/[id] |
frontend | healthy | apps/web/app/(authed)/cadences/[id]/page.tsx |
/(authed)/people |
frontend | healthy | apps/web/app/(authed)/people/page.tsx |
/(authed)/people/[id] |
frontend | healthy | apps/web/app/(authed)/people/[id]/page.tsx |
/contacts |
frontend | healthy | apps/web/app/contacts/page.tsx |
/ |
frontend | healthy | apps/web/app/api/active-account/route.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
Home |
frontend | healthy | apps/web/app/page.tsx |
RootLayout |
frontend | healthy | apps/web/app/layout.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/settings/loading.tsx |
ConnectMyTGPage |
frontend | healthy | apps/web/app/(authed)/settings/tg-connect/page.tsx |
HelpPage |
frontend | healthy | apps/web/app/(authed)/help/page.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/projects/loading.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/projects/[id]/loading.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/dashboard/loading.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/chats/loading.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/chats/[id]/loading.tsx |
AdminOverview |
frontend | healthy | apps/web/app/(authed)/admin/page.tsx |
UsersPage |
frontend | healthy | apps/web/app/(authed)/admin/users/page.tsx |
IngestPage |
frontend | healthy | apps/web/app/(authed)/admin/ingest/page.tsx |
AdminTGPage |
frontend | healthy | apps/web/app/(authed)/admin/tg/page.tsx |
NewTGPage |
frontend | healthy | apps/web/app/(authed)/admin/tg/new/page.tsx |
AdminFoldersPage |
frontend | healthy | apps/web/app/(authed)/admin/folders/page.tsx |
GrantsPage |
frontend | healthy | apps/web/app/(authed)/admin/grants/page.tsx |
InvitesPage |
frontend | healthy | apps/web/app/(authed)/admin/invites/page.tsx |
FoldersRedirectPage |
frontend | healthy | apps/web/app/(authed)/folders/page.tsx |
BroadcastsPage |
frontend | healthy | apps/web/app/(authed)/broadcasts/page.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/people/loading.tsx |
Loading |
frontend | healthy | apps/web/app/(authed)/people/[id]/loading.tsx |
ContactsRedirect |
frontend | healthy | apps/web/app/contacts/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
image::apps/cadence-worker/Dockerfile |
hardware | healthy | apps/cadence-worker/Dockerfile |
image::apps/api/Dockerfile |
hardware | healthy | apps/api/Dockerfile |
image::apps/ai-worker/Dockerfile |
hardware | healthy | apps/ai-worker/Dockerfile |
image::apps/tg-worker/Dockerfile |
hardware | healthy | apps/tg-worker/Dockerfile |
image::apps/web/Dockerfile |
hardware | healthy | apps/web/Dockerfile |
postgres |
hardware | healthy | infra/docker-compose.yml |
redis |
hardware | healthy | infra/docker-compose.yml |
api |
hardware | healthy | infra/docker-compose.yml |
web |
hardware | healthy | infra/docker-compose.yml |
tg-worker |
hardware | healthy | infra/docker-compose.yml |
ai-worker |
hardware | healthy | infra/docker-compose.yml |
cadence-worker |
hardware | healthy | infra/docker-compose.yml |
caddy |
hardware | healthy | infra/docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
auth::apps/web/e2e/login.spec.ts |
security | healthy | apps/web/e2e/login.spec.ts |
auth::apps/web/components/sign-out-button.tsx |
security | healthy | apps/web/components/sign-out-button.tsx |
auth::packages/db/tests/test_adapter_shape.py |
security | healthy | packages/db/tests/test_adapter_shape.py |
auth::apps/web/CLAUDE.md |
security | healthy | apps/web/CLAUDE.md |
auth::apps/web/components/sign-in-button.tsx |
security | healthy | apps/web/components/sign-in-button.tsx |
auth::apps/web/README.md |
security | healthy | apps/web/README.md |
auth::apps/web/components/user-menu.tsx |
security | healthy | apps/web/components/user-menu.tsx |
auth::apps/web/package.json |
security | healthy | apps/web/package.json |
auth::apps/web/__tests__/auth.test.ts |
security | healthy | apps/web/__tests__/auth.test.ts |
auth::apps/web/auth.ts |
security | healthy | apps/web/auth.ts |
auth::apps/api/src/pulse_api/routes/admin_invites.py |
security | healthy | apps/api/src/pulse_api/routes/admin_invites.py |
| Label | Layer | Status | Path |
|---|---|---|---|
changes |
cicd | healthy | .github/workflows/ci.yml |
schemas |
cicd | healthy | .github/workflows/ci.yml |
db |
cicd | healthy | .github/workflows/ci.yml |
api |
cicd | healthy | .github/workflows/ci.yml |
api-image-deps |
cicd | healthy | .github/workflows/ci.yml |
llm |
cicd | healthy | .github/workflows/ci.yml |
tg-worker |
cicd | healthy | .github/workflows/ci.yml |
ai-worker |
cicd | healthy | .github/workflows/ci.yml |
cadence-worker |
cicd | healthy | .github/workflows/ci.yml |
ruff |
cicd | healthy | .github/workflows/ci.yml |
web |
cicd | healthy | .github/workflows/ci.yml |
build-images |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | apps/api/Dockerfile |
port:3000 |
network | healthy | apps/web/playwright.config.ts |
port:64 |
network | healthy | apps/web/pnpm-lock.yaml |
port:16 |
network | healthy | apps/web/pnpm-lock.yaml |
port:5432 |
network | healthy | infra/docker-compose.yml |
port:80 |
network | healthy | infra/docker-compose.yml |
port:443 |
network | healthy | infra/docker-compose.yml |
port:03 |
network | healthy | infra/scripts/pg-backup.sh |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
redis |
data | healthy | README.md |
sqlite |
data | healthy | README.md |
postgresql |
data | healthy | Makefile |
| Label | Layer | Status | Path |
|---|---|---|---|
91.99.11.251 |
network | healthy | README.md |
127.0.0.1 |
network | healthy | apps/api/tests/test_conversations_sync.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::hetzner |
hardware | healthy | CLAUDE.md |
vps::gcp |
hardware | healthy | packages/db/src/pulse_db/migrations/versions/0054_scanning_… |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-salkqe8k |
software | healthy | /tmp/repobility-clone-salkqe8k |
| Label | Layer | Status | Path |
|---|---|---|---|
caddy |
network | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GITHUB_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/94b5d97a-7649-4ab0-8837-7c1ad8b73249/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/94b5d97a-7649-4ab0-8837-7c1ad8b73249/
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.