Skip to content

Commit 39b852f

Browse files
committed
docs(delphi): archive 33 stale leftover docs, fix stale references
Audit of delphi/docs/ against the current code (2026-06-11). Per review feedback (Colin): the stale docs are MOVED to delphi/docs/archive/ rather than deleted — they capture the original research and design intent of the 2025 build-out, which is an independent deliverable worth keeping as raw material for future models to mine. archive/CLAUDE.md marks the folder as historical, instructs agents not to treat it as current documentation, and indexes each file's original purpose and the reason it was archived. - Move 33 stale docs to docs/archive/ byte-identical (git records renames): completed one-off fix memos and session logs, unimplemented design proposals (IGAS topic-consensus metrics, job-id migration, DAG job system, spatial topic prioritization, UMAP viz plan, 16-week topic-agenda migration), and docs describing deleted architecture (legacy poller, run_tests.py, simplified tests, eda_notebooks, 600/802 scripts, custom power-iteration PCA). - Amend 15 surviving docs: status headers on handoffs and deep-analysis-for-julien/07 (which D-fixes are merged vs open), deleted-script references (start_poller.sh, 600_*.py), table name DelphiJobQueue -> Delphi_JobQueue, uv instead of pip/venv, TopicAgenda.jsx -> .tsx, versioned-key delimiter correction. - Rewrite DOCUMENTATION_DIRECTORY.md to index surviving docs + archive. - Fix references to moved docs and deleted scripts in delphi/CLAUDE.md and DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md (run_delphi.sh -> run_delphi.py, start_poller.sh -> start_poller.py, nonexistent reset_database.sh, dead absolute-path link to DATABASE_NAMING_PROPOSAL.md). Kept in place deliberately, as they document still-unfixed bugs: ZID_EXPOSURE_AUDIT.md (zid still exposed in delphi API responses) and TOPIC_LABEL_MISALIGNMENT_ANALYSIS.md (700_datamapplot label sorting). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> commit-id:95a7aa8f
1 parent 2ff519c commit 39b852f

52 files changed

Lines changed: 194 additions & 323 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

delphi/CLAUDE.md

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ this avoids the confusion of having anything called a "cid", the joke was "conve
1616

1717
## helpful background
1818

19-
this was built in two parts, the pca/kmenas/repness and the umap/narrative, and these are combined in the run_delphi.sh script.
19+
this was built in two parts, the pca/kmenas/repness and the umap/narrative, and these are combined in the run_delphi.py script.
2020

2121
## Local Python Environment
2222

@@ -175,7 +175,7 @@ AWS_SECRET_ACCESS_KEY=dummy
175175
AWS_REGION=us-east-1
176176
```
177177

178-
These are configured in run_delphi.sh for all DynamoDB operations.
178+
These are configured in run_delphi.py for all DynamoDB operations.
179179

180180
### DynamoDB Job Queue System
181181

@@ -191,13 +191,13 @@ Delphi now includes a distributed job queue system built on DynamoDB:
191191
2. **Processing Jobs**: Start the job poller service:
192192

193193
```bash
194-
./start_poller.sh
194+
python start_poller.py
195195
```
196196

197197
3. **Table Management**: To reset the job queue:
198198

199199
```bash
200-
aws dynamodb delete-table --table-name DelphiJobQueue --endpoint-url http://localhost:8000 && \
200+
aws dynamodb delete-table --table-name Delphi_JobQueue --endpoint-url http://localhost:8000 && \
201201
docker exec -e PYTHONPATH=/app polis-dev-delphi-1 python /app/create_dynamodb_tables.py --endpoint-url http://host.docker.internal:8000
202202
```
203203

@@ -210,7 +210,7 @@ Delphi now includes a distributed job queue system built on DynamoDB:
210210
### Table Creation
211211

212212
- Primary script: `/create_dynamodb_tables.py` - Creates BOTH Polis math and EVōC tables
213-
- This script is used in `run_delphi.sh` and now integrated into `umap_narrative/run_pipeline.py`
213+
- This script is used in `run_delphi.py` and now integrated into `umap_narrative/run_pipeline.py`
214214

215215
### Schema Definitions
216216

@@ -242,7 +242,7 @@ Delphi now includes a distributed job queue system built on DynamoDB:
242242
- `Delphi_CollectiveStatement` - Collective statements generated for topics
243243

244244
> **Note:** All table names now use the `Delphi_` prefix for consistency.
245-
> For complete documentation on the table renaming, see `/Users/colinmegill/polis/delphi/docs/DATABASE_NAMING_PROPOSAL.md`
245+
> Table definitions in `create_dynamodb_tables.py` are the canonical reference for names and schemas.
246246
247247
## Reset Single Conversation
248248

@@ -281,7 +281,7 @@ See [RESET_SINGLE_CONVERSATION.md](docs/RESET_SINGLE_CONVERSATION.md) for detail
281281
After identifying the correct conversation ZID, run the Delphi pipeline directly with:
282282

283283
```bash
284-
./run_delphi.sh --zid=[ZID]
284+
python run_delphi.py --zid [ZID]
285285
```
286286

287287
Additional options include:
@@ -297,7 +297,7 @@ For production environments, use the job queue system:
297297
1. Start the poller service on your worker machine:
298298

299299
```bash
300-
./start_poller.sh
300+
python start_poller.py
301301
```
302302

303303
2. Submit a job from any machine with access to DynamoDB:
@@ -323,13 +323,6 @@ For production environments, use the job queue system:
323323
docker exec -e PYTHONPATH=/app polis-dev-delphi-1 python /app/create_dynamodb_tables.py --endpoint-url http://host.docker.internal:8000
324324
```
325325

326-
Or use the reset_database.sh script to recreate all tables:
327-
328-
```bash
329-
# Reset all tables (both Polis math and EVōC tables)
330-
./reset_database.sh
331-
```
332-
333326
2. **Testing specific pipeline stages**:
334327

335328
```bash

delphi/docs/CLOJURE_COMPARISON.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,13 @@ The Clojure reference implementation is in: **`math/src/polismath/math/clusters.
4949

5050
This is the **primary reason** clustering results differ between Python and Clojure:
5151

52-
**Python** (Single-level clustering):
53-
- `group_clusters`: Direct clustering of participants into k groups
54-
- Member IDs: Participant IDs
55-
- Example: {id: 0, members: [ptpt1, ptpt2, ...]}
52+
**Python** (Two-level clustering, matching Clojure since PR #2431):
53+
- `base_clusters`: First-level clustering (~100 small clusters of participants)
54+
- Member IDs: Participant IDs
55+
- Example: 100 base clusters with 3-7 participants each
56+
- `group_clusters`: Second-level clustering of base clusters into k groups
57+
- Members stored as base-cluster IDs internally, unfolded to participant IDs for serialization
58+
- Example: {id: 0, members: [0, 1, 5, 8, ...]} where numbers are base cluster IDs (internally)
5659

5760
**Clojure** (Two-level clustering):
5861
1. `base-clusters`: First-level clustering of participants into ~100 small clusters
@@ -70,7 +73,7 @@ Beyond the architecture, there's also an initialization difference:
7073

7174
| Aspect | Python | Clojure |
7275
|--------|--------|---------|
73-
| **Algorithm** | K-means++ (seed 42) | First k distinct points |
76+
| **Algorithm** | First k distinct points (matching Clojure) | First k distinct points |
7477
| **Rationale** | Better convergence, industry standard | Simpler implementation |
7578
| **Result** | Different local optima | Different local optima |
7679
| **Quality** | Both are valid clustering algorithms | Both are valid clustering algorithms |
@@ -96,12 +99,9 @@ Beyond the architecture, there's also an initialization difference:
9699

97100
### Why Tests Fail
98101

99-
The clustering test **intentionally fails** because:
100-
1. Python uses K-means++ initialization → different initial cluster centers
101-
2. K-means converges to nearest local optimum → different final clusters
102-
3. Tests use very tight thresholds (95% Jaccard, 5% L1) to detect any difference
103-
104-
This is **expected behavior** until we implement Option A (match Clojure initialization).
102+
The clustering test **xfails conditionally** on some dataset variants due to incremental-blob
103+
in-conv divergence / cold-start PCA landscape flatness — NOT initialization mismatch.
104+
Python now uses first-k-distinct initialization, matching Clojure (since PR #2431).
105105

106106
## Running Tests
107107

delphi/docs/DELPHI_DOCKER.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This document provides information about the Delphi Docker container setup and o
77
When the Delphi container starts, it performs the following steps:
88

99
1. Initializes DynamoDB tables using `create_dynamodb_tables.py`
10-
2. Starts the job poller service using `start_poller.sh`
10+
2. Starts the job poller by running `python scripts/job_poller.py` directly (the Dockerfile CMD invokes the script)
1111

1212
## Environment Variables
1313

@@ -32,8 +32,7 @@ The Delphi container runs the following services:
3232
If the container exits with code 127, check that:
3333

3434
1. The scripts directory is correctly copied into the container
35-
2. The `start_poller.sh` script is executable
36-
3. The DynamoDB endpoint is correct and accessible
35+
2. The DynamoDB endpoint is correct and accessible
3736

3837
## Maintaining State
3938

delphi/docs/DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,5 +325,5 @@ print(f"Reset {count} stuck jobs")
325325
## Related Documentation
326326

327327
- [JOB_QUEUE_SCHEMA.md](JOB_QUEUE_SCHEMA.md) - Details about the job queue schema
328-
- [ANTHROPIC_BATCH_API_GUIDE.md](ANTHROPIC_BATCH_API_GUIDE.md) - Guide for working with Anthropic's Batch API
329-
- [DATABASE_NAMING_PROPOSAL.md](DATABASE_NAMING_PROPOSAL.md) - Information about database naming conventions
328+
- [DATA_FORMAT_STANDARDS.md](DATA_FORMAT_STANDARDS.md) - DynamoDB key formats and reserved-keyword handling
329+
- [JOB_STATE_MACHINE_DESIGN.md](JOB_STATE_MACHINE_DESIGN.md) - Job types and state transitions

delphi/docs/DOCKER_BUILD_OPTIMIZATION.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ vim pyproject.toml
8888

8989
# 2. Regenerate lock file
9090
make generate-requirements
91+
# Note: the Makefile target calls pip-compile directly; project tooling policy is uv
92+
# (equivalent: uv pip compile pyproject.toml -o requirements.lock)
9193

9294
# 3. Rebuild Docker image
9395
make docker-build
@@ -145,7 +147,7 @@ make generate-requirements-upgrade
145147
```txt
146148
# requirements.lock (generated by pip-compile)
147149
#
148-
# This file is autogenerated by pip-compile with Python 3.13
150+
# This file is autogenerated by pip-compile with Python 3.12
149151
# by the following command:
150152
#
151153
# pip-compile --output-file=requirements.lock pyproject.toml
Lines changed: 45 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,71 @@
11
# Delphi Documentation Directory
22

3-
This document provides an overview of key documentation files in the Delphi system, organized by topic for easy reference.
3+
Index of the documentation in `delphi/docs/`, organized by topic.
44

5-
## Core System Documentation
5+
> **Last cleaned: 2026-06-11.** 33 stale leftover docs (completed fix memos, session
6+
> logs, unimplemented design proposals, docs describing deleted architecture) were
7+
> moved to [archive/](archive/) — kept as raw material capturing the original design
8+
> intent of the 2025 build-out, but **not documentation of the current system** (see
9+
> [archive/CLAUDE.md](archive/CLAUDE.md) for the per-file index). Surviving docs were
10+
> spot-checked against the code on that date; still, when a doc and the code disagree,
11+
> trust the code.
612
7-
| Document | Description |
8-
|----------|-------------|
9-
| [CLAUDE.md](../CLAUDE.md) | Main reference guide with configuration details, database interactions, and system operation |
10-
| [README.md](../README.md) | Project overview and basic setup instructions |
11-
| [QUICK_START.md](QUICK_START.md) | Get started quickly with the Delphi system |
12-
| [RUNNING_THE_SYSTEM.md](RUNNING_THE_SYSTEM.md) | Step-by-step instructions for operating the Delphi system |
13-
| [architecture_overview.md](architecture_overview.md) | High-level overview of the system architecture |
14-
| [project_structure.md](project_structure.md) | Explanation of the project's directory and file organization |
15-
16-
## Database and Data Format Documentation
13+
## Canonical / living documents
1714

1815
| Document | Description |
1916
|----------|-------------|
20-
| [DATABASE_NAMING_PROPOSAL.md](DATABASE_NAMING_PROPOSAL.md) | Explanation of table naming conventions and migration plan |
21-
| [DATA_FORMAT_STANDARDS.md](DATA_FORMAT_STANDARDS.md) | **Critical standards for data formats throughout the system, including DynamoDB key formats** |
22-
| [JOB_QUEUE_SCHEMA.md](JOB_QUEUE_SCHEMA.md) | Schema documentation for the job queue system |
23-
| [S3_STORAGE.md](S3_STORAGE.md) | Information about S3 storage configuration and access |
17+
| [PLAN_DISCREPANCY_FIXES.md](PLAN_DISCREPANCY_FIXES.md) | **Canonical plan** for the Clojure-parity fix campaign (D-fixes), statuses, ordering |
18+
| [CLJ-PARITY-FIXES-JOURNAL.md](CLJ-PARITY-FIXES-JOURNAL.md) | **Append-only session journal** of the parity work — findings, decisions, test results |
19+
| [deep-analysis-for-julien/](deep-analysis-for-julien/) | Deep Clojure-vs-Python analysis (architecture, PCA, clustering, repness, routing, discrepancy catalog). Historical reference; see status note in `07-discrepancies.md` |
2420

25-
## Job System Documentation
21+
## Getting started & operations
2622

2723
| Document | Description |
2824
|----------|-------------|
29-
| [JOB_SYSTEM_DESIGN.md](JOB_SYSTEM_DESIGN.md) | Overall job system architecture and design principles |
30-
| [JOB_STATE_MACHINE_DESIGN.md](JOB_STATE_MACHINE_DESIGN.md) | **Detailed explanation of the job state machine and workflow design** |
31-
| [DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md](DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md) | **Comprehensive guide to troubleshooting common job system issues** |
32-
| [JOB_ID_MIGRATION_PLAN.md](JOB_ID_MIGRATION_PLAN.md) | Plan for migrating to the new job ID system |
33-
34-
## API Integration Documentation
25+
| [QUICK_START.md](QUICK_START.md) | Environment setup (uv/.venv) and standard test invocation |
26+
| [RUNNING_THE_SYSTEM.md](RUNNING_THE_SYSTEM.md) | Operating the pipeline: run_delphi, CLI, job submission |
27+
| [DELPHI_DOCKER.md](DELPHI_DOCKER.md) | Delphi container overview |
28+
| [DOCKER_BUILD_OPTIMIZATION.md](DOCKER_BUILD_OPTIMIZATION.md) | Layered Docker builds, requirements.lock workflow |
29+
| [DELPHI_AUTOSCALING_SETUP.md](DELPHI_AUTOSCALING_SETUP.md) | Instance-size based worker configuration (`configure_instance.py`, `INSTANCE_SIZE`) |
30+
| [RESET_SINGLE_CONVERSATION.md](RESET_SINGLE_CONVERSATION.md) | Removing all Delphi data for one conversation |
31+
| [S3_STORAGE.md](S3_STORAGE.md) | S3/MinIO storage for visualizations |
32+
| [OLLAMA_MODEL_CONFIG.md](OLLAMA_MODEL_CONFIG.md) | Ollama model configuration for topic naming |
33+
| [CLI_STATUS_COMMAND.md](CLI_STATUS_COMMAND.md) | `./delphi status <zid>` CLI command |
34+
35+
## Job system
3536

3637
| Document | Description |
3738
|----------|-------------|
38-
| [ANTHROPIC_BATCH_API_GUIDE.md](ANTHROPIC_BATCH_API_GUIDE.md) | **Complete guide for working with Anthropic's Batch API, including common issues and solutions** |
39-
| [OLLAMA_MODEL_CONFIG.md](OLLAMA_MODEL_CONFIG.md) | Configuration guide for Ollama models |
40-
| [CLI_STATUS_COMMAND.md](CLI_STATUS_COMMAND.md) | Documentation for the CLI status command |
39+
| [JOB_STATE_MACHINE_DESIGN.md](JOB_STATE_MACHINE_DESIGN.md) | Job types (FULL_PIPELINE, CREATE_NARRATIVE_BATCH, AWAITING_NARRATIVE_BATCH) and transitions |
40+
| [JOB_QUEUE_SCHEMA.md](JOB_QUEUE_SCHEMA.md) | `Delphi_JobQueue` schema, GSIs, locking patterns |
41+
| [DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md](DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md) | Diagnosing stuck jobs, DynamoDB gotchas, log locations |
42+
| [DATA_FORMAT_STANDARDS.md](DATA_FORMAT_STANDARDS.md) | DynamoDB key formats (`#` delimiters), reserved keywords, type conversions |
4143

42-
## Deployment and Infrastructure
44+
## Math & Clojure parity reference
4345

4446
| Document | Description |
4547
|----------|-------------|
46-
| [DELPHI_AUTOSCALING_SETUP.md](DELPHI_AUTOSCALING_SETUP.md) | Configuration for auto-scaling the system |
47-
| [DISTRIBUTED_SYSTEM_ROADMAP.md](DISTRIBUTED_SYSTEM_ROADMAP.md) | Roadmap for distributed system improvements |
48+
| [CLOJURE_COMPARISON.md](CLOJURE_COMPARISON.md) | Clojure-vs-Python comparison test infrastructure and known differences |
49+
| [CLOJURE_TWO_LEVEL_CLUSTERING.md](CLOJURE_TWO_LEVEL_CLUSTERING.md) | Two-level (base→group) clustering architecture, as implemented |
50+
| [SUBGROUP_CLUSTERING_THIRD_LEVEL.md](SUBGROUP_CLUSTERING_THIRD_LEVEL.md) | Clojure's third clustering level (subgroups) — unported, unused by consumers |
51+
| [regression_testing.md](regression_testing.md) | Golden-snapshot regression testing: recorder, comparer, datasets |
52+
| [INVESTIGATION_K_DIVERGENCE.md](INVESTIGATION_K_DIVERGENCE.md) | K-means k divergence investigation (RESOLVED — kept as record) |
53+
| [SESSION_HANDOFF_KMEANS.md](SESSION_HANDOFF_KMEANS.md) | K-means parity session background (partially historical — see status note) |
54+
| [HANDOFF_PR14_VECTORIZED_REFACTOR.md](HANDOFF_PR14_VECTORIZED_REFACTOR.md) | Repness refactor handoff (14a in open stack; 14b/14c open) |
55+
| [HANDOFF_REGRESSION_TEST_PERF.md](HANDOFF_REGRESSION_TEST_PERF.md) | Regression-test performance (mostly resolved — see status note) |
4856

49-
## Algorithm and Analysis Documentation
57+
## Topic pipeline (umap_narrative)
5058

5159
| Document | Description |
5260
|----------|-------------|
53-
| [algorithm_analysis.md](algorithm_analysis.md) | Analysis of the core algorithms used in Delphi |
54-
| [TOPIC_NAMING.md](TOPIC_NAMING.md) | Topic naming pipeline: exact prompt, deterministic 5‑comment sampling, logging, storage |
55-
| [usage_examples.md](usage_examples.md) | Examples of system usage and output interpretations |
61+
| [TOPIC_NAMING.md](TOPIC_NAMING.md) | Topic naming: prompt, sampling, storage in `Delphi_CommentClustersLLMTopicNames` |
62+
| [topic-moderation-system.md](topic-moderation-system.md) | Topic moderation endpoints and `Delphi_TopicModerationStatus` |
63+
| [TOPIC_AGENDA_STORAGE_DESIGN.md](TOPIC_AGENDA_STORAGE_DESIGN.md) | Topic agenda storage (`topic_agenda_selections`); Phase 3 never implemented |
64+
| [VERSIONED_TOPIC_KEYS_IMPLEMENTATION.md](VERSIONED_TOPIC_KEYS_IMPLEMENTATION.md) | Versioned topic/section keys (`report_id#section#model`) |
5665

57-
## Testing and Development
66+
## Open issues & audits (still unresolved — do not delete until fixed)
5867

5968
| Document | Description |
6069
|----------|-------------|
61-
| [SIMPLIFIED_TESTS.md](SIMPLIFIED_TESTS.md) | Simplified testing procedures |
62-
| [TESTING_LOG.md](TESTING_LOG.md) | Log of testing activities and results |
63-
| [TEST_RESULTS_SUMMARY.md](TEST_RESULTS_SUMMARY.md) | Summary of test results |
64-
65-
## Recently Added Documentation
66-
67-
The following documentation was recently added to address specific system challenges:
68-
69-
1. **[ANTHROPIC_BATCH_API_GUIDE.md](ANTHROPIC_BATCH_API_GUIDE.md)** - Comprehensive guide for working with Anthropic's Batch API in the Delphi system, including:
70-
- Handling JSON Lines (JSONL) responses from the API
71-
- Proper error handling for API interactions
72-
- Key format requirements for storing results in DynamoDB
73-
- Debugging strategies for batch processing issues
74-
75-
2. **[DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md](DELPHI_JOB_SYSTEM_TROUBLESHOOTING.md)** - Detailed guide for troubleshooting job system issues, including:
76-
- Strategies for diagnosing stuck jobs
77-
- Solutions for common DynamoDB reserved keyword issues
78-
- Techniques for tracing end-to-end job execution
79-
- Database verification processes
80-
81-
3. **[DATA_FORMAT_STANDARDS.md](DATA_FORMAT_STANDARDS.md)** - Critical standards document focusing on:
82-
- Required format for DynamoDB keys (using # as delimiters)
83-
- JSON structure standards for reports
84-
- Handling of reserved keywords in DynamoDB
85-
- Conversion between PostgreSQL and DynamoDB data types
86-
87-
4. **[JOB_STATE_MACHINE_DESIGN.md](JOB_STATE_MACHINE_DESIGN.md)** - Documentation of the state machine design for job processing:
88-
- Explicit job types for different processing stages
89-
- Clear script mapping between job types and processing scripts
90-
- Clean state transition patterns
91-
- Error handling best practices
70+
| [ZID_EXPOSURE_AUDIT.md](ZID_EXPOSURE_AUDIT.md) | **Open security issue**: zid/conversation_id exposed in delphi API responses |
71+
| TOPIC_LABEL_MISALIGNMENT_ANALYSIS.md | **Open bug**: label/cluster sorting misalignment in `700_datamapplot_for_layer.py` (local-only file, in `.git/info/exclude` — not present on fresh clones) |

delphi/docs/HANDOFF_PR14_VECTORIZED_REFACTOR.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Handoff: PR 14 — Make Vectorized Code Readable + Blob Injection Tests
22

3+
> **Status (2026-06-11):** PR 14a (delete dead scalar paths in repness.py) is in the open spr stack as PR #2564. Tasks 14b (vectorized blob-injection tests) and 14c (readability refactor) remain open and are tracked in `PLAN_DISCREPANCY_FIXES.md`. The branch names and stack listing below are from the 2026-03/06 sessions and are stale — do not branch from them.
4+
35
## Goal
46

57
The scalar functions (`comment_stats`, `add_comparative_stats`, `repness_metric`,

delphi/docs/HANDOFF_REGRESSION_TEST_PERF.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Handoff: Regression Test Performance Investigation
22

3+
> **Status (2026-06-11):** Bottleneck 1 (`_compute_participant_info_optimized`) was vectorized (conversation.py group-correlation matrix ops). Bottleneck 2 (benchmark 3× runs) is resolved — `benchmark=False` is now the default in `comparer.py` and `test_regression.py` never enables it. `SKIP_GOLDEN` landed via #2515. Only the intermediate-stage redundancy question (Bottleneck 3) remains open.
4+
35
## Problem
46

57
The `test_regression.py` tests are slow for large private datasets, particularly

delphi/docs/JOB_QUEUE_SCHEMA.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This document defines the schema for the Delphi job queue system. The job queue
77
## Table Design
88

99
### Table Name
10-
`DelphiJobQueue`
10+
`Delphi_JobQueue`
1111

1212
### Primary Key Structure
1313
- **Partition Key**: `job_id` (String) - Unique identifier for each job (UUID v4)
@@ -287,12 +287,14 @@ To manage the growth of the job queue table:
287287

288288
## Implementation Code
289289

290+
> **Caution:** The sample below predates the final schema — the actual table (see `create_dynamodb_tables.py`) uses `job_id` as the sole hash key, not `status`+`created_at`.
291+
290292
Here's a sample Python code for creating the job queue table:
291293

292294
```python
293295
import boto3
294296

295-
def create_job_queue_table(dynamodb=None, table_name='DelphiJobQueue'):
297+
def create_job_queue_table(dynamodb=None, table_name='Delphi_JobQueue'):
296298
if not dynamodb:
297299
dynamodb = boto3.resource('dynamodb')
298300

0 commit comments

Comments
 (0)