← Общий индексchat-agent 3e55976d · voice ce9e9678 · снимок 40cb7a4624ad

Штатный отчёт Graphify

Clustering без модели; исходные выводы инструмента.

# Graph Report - voice  (2026-10-08)

## Corpus Check
- cluster-only mode — file stats not available

## Summary
- 1334 nodes · 4102 edges · 38 communities (31 shown, 7 thin omitted)
- Extraction: 90% EXTRACTED · 10% INFERRED · 0% AMBIGUOUS · INFERRED: 397 edges (avg confidence: 0.5)
- Token cost: 0 input · 0 output

## Community Hubs (Navigation)
- Community 0
- Community 1
- Community 2
- Community 3
- Community 4
- Community 5
- Community 6
- Community 7
- Community 8
- Community 9
- Community 10
- Community 11
- Community 12
- Community 13
- Community 14
- Community 15
- Community 16
- Community 17
- Community 18
- Community 19
- Community 20
- Community 21
- Community 22
- Community 23
- Community 24
- Community 25
- Community 26
- Community 27
- Community 28
- Community 29
- Community 30
- Community 31
- Community 32
- Community 33
- Community 34
- Community 35

## God Nodes (most connected - your core abstractions)
1. `FileModeSettings` - 77 edges
2. `FileJobStore` - 63 edges
3. `DiagnosticsRunner` - 40 edges
4. `FileJobWorkerService` - 38 edges
5. `create_app()` - 37 edges
6. `StagedFileJobService` - 33 edges
7. `diarize_http_json()` - 29 edges
8. `ModelTransportTests` - 28 edges
9. `prepare_staged_job()` - 26 edges
10. `Segmenter` - 25 edges

## Surprising Connections (you probably didn't know these)
- `DiarizationHelpersTest` --uses--> `MediaChunk`  [INFERRED]
  tests/test_diarization.py → src/webui/file_mode.py
- `DiarizationHelpersTest` --uses--> `TimedTranscriptBuilder`  [INFERRED]
  tests/test_diarization.py → src/webui/file_mode.py
- `FileModeMessageTest` --uses--> `PyannoteDiarizationService`  [INFERRED]
  tests/test_diarization.py → src/pyannote_diarization_server.py
- `FileModeMessageTest` --uses--> `PyannoteSettings`  [INFERRED]
  tests/test_diarization.py → src/pyannote_diarization_server.py
- `FileModeMessageTest` --uses--> `FileJobStore`  [INFERRED]
  tests/test_diarization.py → src/webui/file_mode.py

## Import Cycles
- None detected.

## Communities (38 total, 7 thin omitted)

### Community 0 - "Community 0"
Cohesion: 0.06
Nodes (41): model_http_session(), _asset_version(), _bool_query(), _build_groups(), _check(), _compact_body(), _derive_url(), diagnostics_http_handler() (+33 more)

### Community 1 - "Community 1"
Cohesion: 0.06
Nodes (100): pageMode(), activateSession(), appendProcessLog(), applySnapshot(), applyStatePayload(), basePath(), blankView(), bootstrapSession() (+92 more)

### Community 2 - "Community 2"
Cohesion: 0.06
Nodes (55): public_bench_cases(), FileModeSettings, parse_optional_bool(), FileJobLockClient, FileJobLockDenied, FileJobLockLease, job_lock_enabled(), _json_or_empty() (+47 more)

### Community 3 - "Community 3"
Cohesion: 0.06
Nodes (46): apply_bench_config(), _base_config(), BenchResultStore, build_bench_result(), _case_id(), _config_id(), _current_diarization_transport(), diarization_upload_path_for_state() (+38 more)

### Community 4 - "Community 4"
Cohesion: 0.07
Nodes (98): activateSession(), activeJobs(), applyPageMode(), applyPayloadToJob(), applySnapshotToJob(), basePath(), blankDetailView(), bootstrapSession() (+90 more)

### Community 5 - "Community 5"
Cohesion: 0.05
Nodes (17): _clean_optional_text(), _diar_done_signal_payload(), _diar_text_done_payload(), _diar_text_done_signal_payload(), _diarization_wait_details(), FileJobWorkerService, _clear(), _normalize_diarization_runtime_label() (+9 more)

### Community 6 - "Community 6"
Cohesion: 0.06
Nodes (16): SafeInstrument, Hypothesis, Phrase, Worker, health(), msg(), Broker, header() (+8 more)

### Community 7 - "Community 7"
Cohesion: 0.06
Nodes (35): attribute_words(), attributed_words_payload(), AttributedWord, build_speaker_turns(), _coerce_float(), _compact_error_text(), diarization_backend_ready(), _diarization_form_fields() (+27 more)

### Community 8 - "Community 8"
Cohesion: 0.10
Nodes (8): DiarizationAudioArtifact, FileJobStore, _job_snapshot(), FileJobStoreStateTest, _fake_prepare_diarization_audio_artifact(), StagedPrepareJobTest, _fake_normalize(), _fake_prepare_diar_audio()

### Community 9 - "Community 9"
Cohesion: 0.09
Nodes (31): _apply_speaker_mapping(), _chunk_ranges(), _clip_segment(), _copy_wav_segment(), create_app(), diarize(), health(), _empty_cuda_cache() (+23 more)

### Community 10 - "Community 10"
Cohesion: 0.11
Nodes (10): main(), word_error(), main(), run(), pack(), token(), unpack(), Decoder (+2 more)

### Community 11 - "Community 11"
Cohesion: 0.11
Nodes (6): Stream, StreamingBridge, result(), Segmenter, BridgeTests, VadTests

### Community 12 - "Community 12"
Cohesion: 0.12
Nodes (22): create_app(), diarize(), health(), _download_file(), _duration_from_segments(), _ensure_embedding_model(), _ensure_segmentation_model(), _env() (+14 more)

### Community 13 - "Community 13"
Cohesion: 0.12
Nodes (27): _audio_codec_name(), _compact_error_text(), _decode_transcribe_json_candidate(), _ensure_nonempty_artifact(), extract_transcribe_text(), guess_media_content_type(), _iter_audio_frames(), iter_normalized_wav_chunk_files() (+19 more)

### Community 14 - "Community 14"
Cohesion: 0.10
Nodes (11): main(), noises(), read_audio(), main(), download_model_file(), ensure_model_path(), get_speech_timestamps(), _maybe_visualize() (+3 more)

### Community 15 - "Community 15"
Cohesion: 0.25
Nodes (13): job_lock_message(), acquire(), _clean_payload(), create_app(), _env_float(), FileJobLockService, health(), heartbeat() (+5 more)

### Community 16 - "Community 16"
Cohesion: 0.13
Nodes (9): configure(), _default_diarization_health_url(), _env_bool(), _env_float(), _env_int(), _env_json_string_map(), load_file_mode_settings(), _env_int() (+1 more)

### Community 17 - "Community 17"
Cohesion: 0.14
Nodes (7): configure_logging(), _env(), _env_bool(), main(), _main_async(), resample_audio(), parse_wire_packet()

### Community 18 - "Community 18"
Cohesion: 0.19
Nodes (4): appendBytes(), findCrlf(), NatsWsClient, trimNatsError()

### Community 19 - "Community 19"
Cohesion: 0.22
Nodes (15): _coerce_progress_value(), configure_logging(), _device_progress_label(), _env(), _env_float(), _env_int(), _env_optional_float(), load_settings() (+7 more)

### Community 20 - "Community 20"
Cohesion: 0.20
Nodes (5): healthcheck_url(), main(), probe_health(), _DummyResponse, PyannoteHealthcheckTest

### Community 21 - "Community 21"
Cohesion: 0.16
Nodes (4): _missing_audio_track_message(), FileModeMessageTest, _fake_copy(), _fake_run()

### Community 22 - "Community 22"
Cohesion: 0.23
Nodes (5): PyannoteProgressHook, PyannoteProgressPublisher, PyannoteSettings, _subject(), PyannoteProgressTest

### Community 23 - "Community 23"
Cohesion: 0.27
Nodes (9): _annotation_segments(), _apply_pipeline_request_overrides(), _audio_input(), _default_pyannote_pipeline_import(), _effective_runtime_options(), _override_targets(), PyannoteProgressContext, PyannoteRuntimeOptions (+1 more)

### Community 24 - "Community 24"
Cohesion: 0.30
Nodes (14): basePath(), configSummary(), formatRtf(), formatSeconds(), init(), latestForCase(), load(), meta() (+6 more)

### Community 25 - "Community 25"
Cohesion: 0.34
Nodes (13): appendBrowserNatsCheck(), basePath(), checkBrowserNats(), checkClass(), formatLatency(), meta(), natsClientOptions(), render() (+5 more)

### Community 27 - "Community 27"
Cohesion: 0.17
Nodes (3): _compact_error_text(), _friendly_load_error(), _FakeNatsClient

### Community 31 - "Community 31"
Cohesion: 0.20
Nodes (6): create_app(), diarize(), health(), _health_payload(), _optional_float(), _optional_positive_int()

### Community 32 - "Community 32"
Cohesion: 0.36
Nodes (7): drop_pyannote_base_target(), has_build_targets(), has_pyannote_base_target(), OTEL_RESOURCE_ATTRIBUTES, PYANNOTE_BASE_TAG, REGISTRY_HOST, build-images.sh script

### Community 33 - "Community 33"
Cohesion: 0.25
Nodes (4): _apply_pipeline_runtime_overrides(), _import_pyannote_pipeline_class(), _pipeline_requires_hf_token(), _validate_pipeline_access()

### Community 34 - "Community 34"
Cohesion: 0.73
Nodes (5): add_deploy_key(), load_b64_key(), load_plain_key(), deploy.sh script, start_key_agent()

## Knowledge Gaps
- **3 isolated node(s):** `REGISTRY_HOST`, `PYANNOTE_BASE_TAG`, `OTEL_RESOURCE_ATTRIBUTES`
  These have ≤1 connection - possible missing edges. (Counts symbols only; 189 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **7 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 `run_webui()` connect `Community 2` to `Community 10`?**
  _High betweenness centrality (0.001) - this node is a cross-community bridge._
- **Are the 5 inferred relationships involving `FileJobWorkerService` (e.g. with `FileJobStore` and `FileModeSettings`) actually correct?**
  _`FileJobWorkerService` has 5 INFERRED edges - model-reasoned connections that need verification._
- **What connects `REGISTRY_HOST`, `PYANNOTE_BASE_TAG`, `OTEL_RESOURCE_ATTRIBUTES` to the rest of the system?**
  _3 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
  _Cohesion score 0.05688215880411571 - nodes in this community are weakly interconnected._
- **Why does `create_app()` connect `Community 2` to `Community 0`, `Community 3`, `Community 5`, `Community 8`, `Community 16`?**
  _High betweenness centrality (0.001) - this node is a cross-community bridge._
- **Should `Community 1` be split into smaller, more focused modules?**
  _Cohesion score 0.061541448262473306 - nodes in this community are weakly interconnected._
- **Should `Community 2` be split into smaller, more focused modules?**
  _Cohesion score 0.05898989898989899 - nodes in this community are weakly interconnected._