obsidian/wiki/architecture/DevOps_Click_UP_sync-structure.md
2026-05-18 11:00:36 +01:00

5.4 KiB

tags updated
architecture
graphify
DevOps_Click_UP_sync
2026-05-18

Graph Report - /Users/ai_leed/Documents/Projects/Oliver/DevOps_Click_UP_sync (2026-05-18)

Corpus Check

  • cluster-only mode — file stats not available

Summary

  • 149 nodes · 197 edges · 16 communities (11 shown, 5 thin omitted)
  • Extraction: 87% EXTRACTED · 13% INFERRED · 0% AMBIGUOUS · INFERRED: 25 edges (avg confidence: 0.79)
  • Token cost: 0 input · 0 output

Graph Freshness

  • Built from commit: 54eddd70
  • Run git rev-parse HEAD and compare to check if the graph is stale.
  • Run graphify update . after code changes (no API cost).

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. ClickUpClient - 21 edges
  2. ADOClient - 17 edges
  3. _handle_ado_workitem() - 10 edges
  4. log_sync_event() - 8 edges
  5. _handle_clickup_task() - 7 edges
  6. Base - 6 edges
  7. _handle_ado_comment() - 6 edges
  8. _handle_clickup_comment() - 6 edges
  9. is_echo_event() - 6 edges
  10. loadLog() - 5 edges

Surprising Connections (you probably didn't know these)

  • _handle_clickup_task() --calls--> clickup_task_to_ado_patch() [INFERRED] src/sync/engine.py → src/sync/mapper.py
  • start_initial_sync() --calls--> _syncDone() [EXTRACTED] src/api/setup.py → frontend/app.js
  • start_initial_sync() --calls--> pollInitialSync() [EXTRACTED] src/api/setup.py → frontend/app.js
  • run_initial_sync() --calls--> SyncMap [INFERRED] src/sync/initial.py → src/database.py
  • _handle_ado_workitem() --calls--> SyncMap [INFERRED] src/sync/engine.py → src/database.py

Communities (16 total, 5 thin omitted)

Community 1 - "Community 1"

Cohesion: 0.15 Nodes (13): start_initial_sync(), adoUrl, closeMappingModal(), deleteMapping(), loadLog(), loadMappings(), loadStatus(), logNext() (+5 more)

Community 2 - "Community 2"

Cohesion: 0.20 Nodes (19): CommentMap, is_echo_event(), log_sync_event(), Loop prevention: detect echo events caused by our own sync writes., Returns True if we recently synced this entity in the OPPOSITE direction, me, _find_clickup_user_id(), _find_list_for_ado_project(), _get_sync_map_by_ado() (+11 more)

Community 4 - "Community 4"

Cohesion: 0.14 Nodes (9): cancel_initial_sync(), list_ado_webhooks(), Setup and configuration endpoints., Register ClickUp webhook pointing to this service., Register ADO Service Hooks for all projects (or specified ones). Creates sub, List all existing ADO Service Hook subscriptions., setup_ado_webhooks(), setup_webhooks() (+1 more)

Community 5 - "Community 5"

Cohesion: 0.19 Nodes (9): create_mapping(), DeclarativeBase, Base, init_db(), ProjectMap, SyncLog, SyncMap, lifespan() (+1 more)

Community 6 - "Community 6"

Cohesion: 0.22 Nodes (8): ProjectMappingRequest, ado_webhook(), clickup_webhook(), Webhook endpoints for ADO and ClickUp., BaseModel, ADOResource, ADOWebhookPayload, ClickUpWebhookPayload

Community 7 - "Community 7"

Cohesion: 0.27 Nodes (8): Bulk initial sync: import work items assigned to the configured user., reset_cancel(), run_initial_sync(), ado_work_item_to_clickup_task(), clickup_task_to_ado_patch(), html_to_markdown(), _priority_name_to_int(), Field mapping between Azure DevOps and ClickUp.

Knowledge Gaps

  • 2 isolated node(s): adoUrl, allow These have ≤1 connection - possible missing edges or undocumented components.
  • 5 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does ProjectMap connect Community 5 to Community 6? High betweenness centrality (0.164) - this node is a cross-community bridge.
  • Why does ProjectMappingRequest connect Community 6 to Community 4, Community 5? High betweenness centrality (0.141) - this node is a cross-community bridge.
  • Why does SyncMap connect Community 5 to Community 2, Community 7? High betweenness centrality (0.082) - this node is a cross-community bridge.
  • Are the 4 inferred relationships involving _handle_ado_workitem() (e.g. with SyncMap and ado_work_item_to_clickup_task()) actually correct? _handle_ado_workitem() has 4 INFERRED edges - model-reasoned connections that need verification.
  • Are the 7 inferred relationships involving log_sync_event() (e.g. with SyncLog and run_initial_sync()) actually correct? log_sync_event() has 7 INFERRED edges - model-reasoned connections that need verification.
  • Are the 4 inferred relationships involving _handle_clickup_task() (e.g. with SyncMap and clickup_task_to_ado_patch()) actually correct? _handle_clickup_task() has 4 INFERRED edges - model-reasoned connections that need verification.
  • What connects adoUrl, allow, FastAPI application entry point. to the rest of the system? 15 weakly-connected nodes found - possible documentation gaps or missing edges.