← Общий индексchat-agent c0738a60 · voice 21c85b0c · снимок 8223244a5e72

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

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

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

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

## Summary
- 1121 nodes · 3477 edges · 33 communities (28 shown, 5 thin omitted)
- Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 312 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

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

## Surprising Connections (you probably didn't know these)
- `DiarizationHelpersTest` --uses--> `DiarizationSegment`  [INFERRED]
  tests/test_diarization.py → src/diarization.py
- `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

## Import Cycles
- None detected.

## Communities (33 total, 5 thin omitted)

### Community 0 - "Community 0"
Cohesion: 0.07
Nodes (99): activateSession(), activeJobs(), applyPageMode(), applyPayloadToJob(), applySnapshotToJob(), basePath(), blankDetailView(), bootstrapSession() (+91 more)

### Community 1 - "Community 1"
Cohesion: 0.06
Nodes (99): activateSession(), appendProcessLog(), applySnapshot(), applyStatePayload(), basePath(), blankView(), bootstrapSession(), buildCaseBenchConfig() (+91 more)

### Community 2 - "Community 2"
Cohesion: 0.06
Nodes (56): public_bench_cases(), FileModeSettings, parse_optional_bool(), resolve_optional_bool(), FileJobLockClient, FileJobLockDenied, FileJobLockLease, job_lock_enabled() (+48 more)

### Community 3 - "Community 3"
Cohesion: 0.06
Nodes (23): DiarizationAudioArtifact, FileJobStore, probe_wav_duration_s(), write_normalized_audio_wav(), _job_snapshot(), _combine_blocked_details(), _default_artifacts(), _default_steps() (+15 more)

### Community 4 - "Community 4"
Cohesion: 0.06
Nodes (39): model_http_session(), _asset_version(), _bool_query(), _build_groups(), _check(), _compact_body(), _derive_url(), diagnostics_http_handler() (+31 more)

### Community 5 - "Community 5"
Cohesion: 0.06
Nodes (18): _clean_optional_text(), configure_logging(), _env(), _env_bool(), main(), _main_async(), PhraseStreamState, SttWhisperToNatsService (+10 more)

### Community 6 - "Community 6"
Cohesion: 0.06
Nodes (38): _audio_codec_name(), _compact_error_text(), _decode_transcribe_json_candidate(), _default_diarization_health_url(), _ensure_nonempty_artifact(), _env_bool(), _env_float(), _env_int() (+30 more)

### Community 7 - "Community 7"
Cohesion: 0.06
Nodes (12): _diar_done_signal_payload(), _diar_text_done_payload(), _diar_text_done_signal_payload(), _diarization_wait_details(), FileJobWorkerService, _normalize_diarization_runtime_label(), _FakeNatsClient, FileWorkerMessagingTest (+4 more)

### Community 8 - "Community 8"
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 9 - "Community 9"
Cohesion: 0.11
Nodes (22): create_app(), diarize(), health(), _download_file(), _duration_from_segments(), _ensure_embedding_model(), _ensure_segmentation_model(), _env() (+14 more)

### Community 10 - "Community 10"
Cohesion: 0.11
Nodes (5): _diarization_form_fields(), diarize_http_json(), _redact_sensitive_text(), replace(), ModelTransportTests

### Community 11 - "Community 11"
Cohesion: 0.21
Nodes (25): apply_bench_config(), _base_config(), build_bench_result(), _case_id(), _config_id(), _current_diarization_transport(), diarization_upload_path_for_state(), _extra_fields_for_config() (+17 more)

### Community 12 - "Community 12"
Cohesion: 0.23
Nodes (14): acquire(), _clean_payload(), create_app(), _env_float(), _env_int(), FileJobLockService, health(), heartbeat() (+6 more)

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

### Community 14 - "Community 14"
Cohesion: 0.23
Nodes (14): attribute_words(), attributed_words_payload(), _coerce_float(), diarization_segments_payload(), DiarizationResult, DiarizationSegment, _extract_segments(), _extract_speakers() (+6 more)

### Community 15 - "Community 15"
Cohesion: 0.17
Nodes (6): _compact_error_text(), diarization_backend_ready(), _summarize_diarization_http_failure(), _summarize_experimental_not_configured(), _summarize_pipeline_not_ready(), DiarizationHelpersTest

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

### Community 17 - "Community 17"
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 18 - "Community 18"
Cohesion: 0.28
Nodes (13): AttributedWord, build_speaker_turns(), render_speaker_text(), SpeakerTurn, apply_syntax_postprocess(), _ends_sentence(), _has_lexical_words(), _is_lexical() (+5 more)

### Community 19 - "Community 19"
Cohesion: 0.15
Nodes (6): _apply_pipeline_runtime_overrides(), _import_pyannote_pipeline_class(), _pipeline_requires_hf_token(), _validate_pipeline_access(), FileModeMessageTest, _fake_run()

### Community 20 - "Community 20"
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 21 - "Community 21"
Cohesion: 0.30
Nodes (14): basePath(), configSummary(), formatRtf(), formatSeconds(), init(), latestForCase(), load(), meta() (+6 more)

### Community 22 - "Community 22"
Cohesion: 0.25
Nodes (6): health(), _health_payload(), PyannoteProgressHook, PyannoteSettings, _subject(), PyannoteProgressTest

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

### Community 25 - "Community 25"
Cohesion: 0.18
Nodes (3): _compact_error_text(), _friendly_load_error(), PyannoteDiarizationService

### Community 27 - "Community 27"
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 29 - "Community 29"
Cohesion: 0.29
Nodes (4): create_app(), diarize(), _optional_float(), _optional_positive_int()

### Community 30 - "Community 30"
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; 133 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
- **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:_

- **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.06594059405940594 - nodes in this community are weakly interconnected._
- **Are the 18 inferred relationships involving `create_app()` (e.g. with `diagnostics_http_handler()` and `DiagnosticsRunner`) actually correct?**
  _`create_app()` has 18 INFERRED edges - model-reasoned connections that need verification._
- **Should `Community 1` be split into smaller, more focused modules?**
  _Cohesion score 0.06198019801980198 - nodes in this community are weakly interconnected._
- **Should `Community 2` be split into smaller, more focused modules?**
  _Cohesion score 0.0595959595959596 - nodes in this community are weakly interconnected._
- **Should `Community 3` be split into smaller, more focused modules?**
  _Cohesion score 0.06378865979381443 - nodes in this community are weakly interconnected._