odysseus/scripts
Léo 5c8611fba6 docs: generate the ODYSSEUS_* configuration reference from the source
The configuration surface was undiscoverable. .env.example has three active
lines, and of the ODYSSEUS_* variables the code actually reads, most appear
nowhere in .env.example, docs/, website/ or README.md - including several that
change security-relevant behaviour (ODYSSEUS_BROWSER_NO_SANDBOX,
ODYSSEUS_ALLOW_PRIVATE_CALDAV, ODYSSEUS_ENABLE_HOST_DOCKER,
ODYSSEUS_MCP_ALLOWED_COMMANDS). Every question about one of them lands in the
issue tracker.

A hand-written page would drift within a month, so the page is generated:

- scripts/generate_env_reference.py walks the Python sources, collects each read
  with the default it falls back to and the file it is read in, groups by area,
  and marks the internal variables rather than omitting them.
- website/configuration-reference.md is the generated output, wired into the
  Pages layout and linked from setup.md and .env.example. .env.example stays a
  short deployment-level example and links onward rather than growing.
- tests/test_env_reference.py regenerates and compares, so adding a variable
  without documenting it fails the suite. That is the point: the current state
  happened because nothing objected.

Finding the reads needs more than one pattern. Two families - the upload caps in
src/upload_limits.py and the media-ingress overrides in src/media_ingress.py -
are read through helper functions, so the generator detects env-reader helpers
rather than hardcoding a list. Others span two lines, hold the variable name in
a module constant, or read through a mapping passed in as an argument. One lives
inside a string literal, in the Ollama probe script routes/cookbook_helpers.py
builds line by line. A line-based grep for os.environ.get("ODYSSEUS_ finds 70 of
the 98 the generator finds; the page reports that gap and recomputes it on every
run so the claim cannot go stale.

No application behaviour changes.
2026-09-30 15:11:19 +02:00
..
_completion Odysseus v1.0 2026-05-31 23:58:26 +09:00
_lib Odysseus v1.0 2026-05-31 23:58:26 +09:00
demo_email fix(email): serialize default-account mutations (#5805) 2026-08-12 04:59:46 +01:00
add_hwfit_models.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
agent_migration_manifest.py docs: add agent migration manifest helper (#3028) 2026-06-15 15:57:33 +09:00
analyze_odysseus_eval_targets.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
assemble_sft_clean_corpus.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
audit_email_sft_with_deepseek.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
audit_historical_tool_routing.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
audit_search_pipeline.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
audit_sft_corpus_with_deepseek.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
audit_typo_tool_routing.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
backfill_model_release_dates.py Open email context for agent, email search across All Mail, cookbook serve polish 2026-06-15 20:47:51 +09:00
build_historical_harness_queue.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
build_odysseus_everyday_deepseek_heldout_cases.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_everyday_deepseek_heldout_v3_cases.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_realistic_web_synthesis_rows.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_search_teacher_edited_rows.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_sft_repair_manifest.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
build_odysseus_tool_efficiency_sft_slice.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_v54_live_gap_teacher_sft.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_v55_web_synthesis_teacher_sft.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_v56_broad_web_teacher_sft.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_v61_app_route_web_rows.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_v62_teacher_trace_web_rows.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_web_teacher_sft.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_odysseus_web_v53_repair_sft.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_sft_environment_inventories.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
build_sft_expansion_manifest.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_sft_expansion_splits.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
build_v66_calendar_heldout_cases.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
check-docker-amd-gpu.sh Parse all AMD GPU check args (#1586) 2026-06-03 08:56:48 +09:00
check-docker-gpu.sh docs(docker): polish WSL2 snap GPU guidance 2026-07-08 19:30:41 +00:00
claim_ownerless.py Reject blank ownerless claim owner (#4929) 2026-06-28 10:57:11 +01:00
compare_compact_tool_inventory.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
compare_reference_strategies.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
compare_schema_thinking.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
compare_tool_routing.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
cook_sft_alex_conversations.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
css_snapshot.py test(css): pin computed styles against a committed baseline 2026-09-25 11:32:46 +02:00
curate_public_search_seed_cases.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
curate_sft_trace_run.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
diffusion_server.py Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
encode_previews.sh refactor(docs): separate Pages site source (#6176) 2026-08-27 10:20:36 +02:00
eval_exact_file_routing.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_followup_domain_continuity.py Harden maintainer-preview harness and review fixes 2026-09-21 06:54:03 +00:00
eval_odysseus_app_route_smoke.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_contextual_tool_use.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_crud.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_everyday_live_hard.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_live_hard_direct.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_live_hard_examples.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_odysseus_tool_use.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_qwen35_document_shape_direct.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_qwen35_implicit_memory.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_qwen35_tool_router_extended.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
eval_qwen_tool_groups_stream.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
filter_sft_seed_hygiene.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
fix_paths.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
generate_env_reference.py docs: generate the ODYSSEUS_* configuration reference from the source 2026-09-30 15:11:19 +02:00
generate_sft_environment_expansion.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
generate_sft_flow_variants_with_kimi.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
hf_download.py Odysseus v1.0 2026-05-31 23:58:26 +09:00
import_from_vllm_recipes.py Open email context for agent, email search across All Mail, cookbook serve polish 2026-06-15 20:47:51 +09:00
index_documents.py refactor(constants): single source of truth for data dir (#3368) 2026-06-08 09:58:52 +02:00
judge_seeded_harness_replay.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
manage_sft_fixture_state.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
migrate_faiss_to_chroma.py refactor(constants): single source of truth for data dir (#3368) 2026-06-08 09:58:52 +02:00
migrate_searxng_settings.py fix(docker): migrate retained SearXNG settings (#6055) 2026-08-16 04:17:58 +02:00
mlx_image_server.py Merge commit from fork 2026-08-24 17:38:40 +02:00
note_test_oracle.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
ody_eval_email_fixture.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
odysseus Require runnable dispatcher subcommands (#1585) 2026-06-03 08:56:56 +09:00
odysseus-backup Skip vanished backup list entries (#2006) 2026-07-11 05:26:42 +01:00
odysseus-calendar Fix odysseus-calendar list dropping in-progress / multi-day events (#2065) 2026-06-16 14:04:56 +02:00
odysseus-contacts Skip invalid contacts CLI rows (#1569) 2026-06-03 14:11:21 +09:00
odysseus-cookbook fix(platform): Improve WSL SSH remote compatibility (#3316) 2026-06-08 00:33:50 +02:00
odysseus-dev feat(scripts): add odysseus-dev, a per-worktree isolated boot 2026-09-25 17:35:47 +02:00
odysseus-docs Ignore non-string docs CLI content lengths (#1561) 2026-06-03 14:06:46 +09:00
odysseus-gallery Normalize gallery CLI text fields (#2012) 2026-06-29 13:47:29 +01:00
odysseus-logs fix: logs CLI _resolve crashes on a non-string name (#1631) 2026-06-03 08:59:30 +09:00
odysseus-mail Ignore non-string mail CLI recipients (#1824) 2026-06-29 13:41:22 +01:00
odysseus-mcp Normalize stored MCP CLI JSON (#1554) 2026-06-03 14:11:35 +09:00
odysseus-memory fix: odysseus-memory cmd_add crashes on non-dict existing memory row (#2091) 2026-07-11 03:05:17 +01:00
odysseus-notes Skip invalid notes CLI item rows (#2005) 2026-06-29 14:26:46 +01:00
odysseus-personal Skip invalid personal CLI index rows (#1571) 2026-06-03 14:06:42 +09:00
odysseus-preset Let preset set replace corrupt entries (#1650) 2026-06-03 14:10:58 +09:00
odysseus-research Research CLI: alias --status complete to the stored done value (#2515) 2026-06-05 08:50:33 +01:00
odysseus-sessions Normalize session CLI counters (#1578) 2026-06-03 08:57:41 +09:00
odysseus-signature Reject non-PNG signature export data (#1651) 2026-06-03 14:10:54 +09:00
odysseus-skills Skip invalid skills CLI rows (#1553) 2026-06-03 14:11:38 +09:00
odysseus-tasks Ignore non-string task CLI previews (#1559) 2026-06-03 14:06:49 +09:00
odysseus-theme Reject invalid theme CLI prefs (#1396) 2026-06-03 14:12:35 +09:00
odysseus-webhook fix(cli): generate live task webhook URLs (#5956) 2026-08-16 23:28:26 +01:00
odysseus_conversation_qa.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
odysseus_domain_audit.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
odysseus_related_flow_audit.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
odysseus_remaining_tool_audit.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
pr_blocker_audit.py tools: add read-only PR blocker audit helper 2026-06-04 12:51:48 +01:00
probe_browser_budget.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
probe_empty_search_recovery.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
probe_fixed_search_evidence.py Record wording robustness probes and source-loss replay evidence 2026-09-17 22:02:34 +00:00
probe_reference_resolution.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
probe_search_synthesis.mjs Validate clarification and correct context-test setup; record rejected prompt experiment 2026-09-17 21:49:00 +00:00
probe_search_tool_choice.mjs Record controlled missing-referent and schema-omission diagnostics 2026-09-17 21:44:46 +00:00
repair_email_sft_with_kimi.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
repair_sft_corpus_with_kimi.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
rerun_qwen35_v31_odysseus_surface.sh Squash Odysseus development history 2026-09-11 06:04:19 +00:00
review_sft_environment_expansion.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_odysseus_cases_chunked.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_odysseus_search_teacher_pipeline.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_regular_local_epictetus_full_matrix.sh Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_sft_environment_expansion.py Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
run_sft_maya_overnight.sh Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_sft_overnight.sh Squash Odysseus development history 2026-09-11 06:04:19 +00:00
run_sft_overnight_fixture_flows.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
select_sft_expansion_seeds.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
serve_ajax_preheretic.sh Squash Odysseus development history 2026-09-11 06:04:19 +00:00
sft_email_overseer.py Harden maintainer-preview harness and review fixes 2026-09-21 06:54:03 +00:00
summarize_odysseus_eval_delta.py Squash Odysseus development history 2026-09-11 06:04:19 +00:00
summarize_reference_strategies.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
summarize_result_format.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
summarize_schema_thinking.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
summarize_tool_routing.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
test_clean_tool_loop.py fix(ci): make maintainer harness contract self-contained and portable 2026-09-22 11:31:45 +01:00
tool_followup_oracle.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
update_database.py Remove duplicate update database body (#1584) 2026-06-03 08:57:03 +09:00
verify_agent_turn_contract.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_audited_note_flows.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_background_delivery_isolation.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_background_research_cards.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_background_research_chat.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_calendar_confirmation_links.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_clean_v3_email_read.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_clean_v3_private_browser.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_clean_v3_search_quality.mjs Schedule broad research before synthesis and clarify briefing layout 2026-09-17 22:46:33 +00:00
verify_clean_v3_stateful.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_clean_v3_vl.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_clean_v3_vl_workflow.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_clean_v3_write.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_cookbook_read_followups.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_document_suggestion_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_email_search_read_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_entity_link_navigation.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_interleaved_tool_followups.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_minimized_document_context.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_mobile_active_editor_followups.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_multi_note_delete_followup.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_native_media_followups.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_native_workspace_followups.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_read_tool_followups.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_record_read_recovery.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_regular_model_tools.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_research_chat_launch.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_search_chats_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_second_document_read_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_second_item_followups.mjs Consolidate Odysseus agent harness and tool contracts 2026-09-17 10:07:40 +00:00
verify_second_memory_delete_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_second_skill_followup.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_streaming_entity_link.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_supplemental_read_drilldowns.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_terminal_error_visibility.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_ui_panel_followups.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00
verify_web_subtool_followups.mjs Squash Odysseus development history 2026-09-11 06:04:19 +00:00