..
fixtures
chore(lint): drop unused imports from new test files (ruff F401)
2026-05-04 19:32:31 +02:00
helpers
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
snapshots
feat(api,web,cli): /admin/workspace-prompt + /api/welcome restored + da analyst writes CLAUDE.md
2026-05-03 22:44:14 +02:00
__init__.py
conftest.py
merge: pull #174 (BQ materialize view fix + concurrency, 0.33.0) into bootstrap branch
2026-05-04 20:53:00 +02:00
test_access_control.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_admin_bigquery_test_connection.py
test(admin): #160 RED tests for BQ test-connection + server-config placeholder
2026-05-04 10:31:35 +02:00
test_admin_bq_register.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_admin_configure_api.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_admin_discover_bigquery.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_admin_keboola_materialized.py
feat(admin-api): reject register-table for source_type not configured on instance
2026-05-01 23:04:51 +02:00
test_admin_phase_c_deprecation.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_admin_put_preservation.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_admin_register_materialized_server_generated_sql.py
feat(admin): server-generate materialized source_query, allow BQ backticks
2026-05-04 18:37:27 +02:00
test_admin_register_source_type_validation.py
feat(admin-api): reject register-table for source_type not configured on instance
2026-05-01 23:04:51 +02:00
test_admin_server_config.py
fix(query): #168 review iter 3 — RBAC name-vs-id, placeholder dead code
2026-05-04 13:51:36 +02:00
test_admin_server_config_corp_memory.py
feat(admin-ui): /admin/server-config known-fields registry + structured nested editor
2026-05-01 20:27:01 +02:00
test_admin_server_config_known_fields.py
refactor(bq): #160 remove legacy_wrap_views config knob (always-wrap)
2026-05-04 10:31:35 +02:00
test_admin_server_config_materialize_section.py
feat(config): expose materialize.lock_ttl_seconds in server-config
2026-05-04 18:52:54 +02:00
test_admin_server_config_placeholder.py
test(admin): #160 RED tests for BQ test-connection + server-config placeholder
2026-05-04 10:31:35 +02:00
test_admin_server_config_renderer_depth.py
feat(admin-ui): /admin/server-config known-fields registry + structured nested editor
2026-05-01 20:27:01 +02:00
test_admin_tables_tab_ui.py
feat(admin-ui): /admin/tables per-connector tabs + Keboola materialized parity + form cleanup + Manage access deep link
2026-05-01 20:26:29 +02:00
test_admin_tables_ui_materialized.py
feat(admin-ui): /admin/tables per-connector tabs + Keboola materialized parity + form cleanup + Manage access deep link
2026-05-01 20:26:29 +02:00
test_admin_tokens_ui.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_admin_unregister_cleanup.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_admin_user_capabilities_ui.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_admin_validator_backtick_relaxed_for_materialized.py
tests: rename 'prj-grp' placeholder to 'my-project' for vendor-agnostic OSS
2026-05-04 20:38:47 +02:00
test_api.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_api_admin_materialized.py
merge: pull #174 (BQ materialize view fix + concurrency, 0.33.0) into bootstrap branch
2026-05-04 20:53:00 +02:00
test_api_complete.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_api_query_guardrail.py
fix(query-guardrail): single-pass alternation regex (Devin Review on query.py:464)
2026-05-04 22:51:33 +02:00
test_api_query_quota.py
fix(query): #168 review iter 2 — quota user_id parity + concurrent-slot 429
2026-05-04 13:38:31 +02:00
test_api_query_rbac_bq_path.py
sec(query): #160 BQ_PATH catches quoted "bq" catalog token (Phase 3 review)
2026-05-04 10:31:35 +02:00
test_api_scripts.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_app_version.py
test_auth_providers.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_auth_rate_limit.py
security(auth): per-IP rate limit + last-admin guard ( #165 )
2026-05-02 21:08:33 +02:00
test_auth_scheduler_token.py
fix(scheduler): HTTP marketplaces job + SCHEDULER_API_TOKEN shared secret ( #127 )
2026-04-29 11:44:00 +02:00
test_auto_profiling.py
test_bigquery_auth.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_bigquery_extractor.py
refactor(bq): #160 remove legacy_wrap_views config knob (always-wrap)
2026-05-04 10:31:35 +02:00
test_bigquery_extractor_full.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_bootstrap.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_bq_access.py
fix(v2): #134 BigQuery cross-project errors return structured 502/400 + BqAccess facade ( #138 )
2026-04-30 10:11:20 +02:00
test_bq_cost_guardrail.py
fix(bq-materialize): code-review follow-ups for d8a22996
2026-05-04 16:52:18 +02:00
test_bq_init_extract_skips.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_bq_materialize.py
fix(bq-materialize): wrap admin SQL in bigquery_query() so views work
2026-05-04 16:40:40 +02:00
test_bq_materialize_concurrency.py
fix(bq-materialize): TTL reclaim was dead code (Devin Review on extractor.py:166)
2026-05-04 22:36:56 +02:00
test_bq_materialize_query_wrapping.py
fix(bq-materialize): wrap admin SQL in bigquery_query() so views work
2026-05-04 16:40:40 +02:00
test_catalog_export.py
test_claude_md_api.py
feat(api,web,cli): /admin/workspace-prompt + /api/welcome restored + da analyst writes CLAUDE.md
2026-05-03 22:44:14 +02:00
test_claude_md_renderer.py
fix(claude_md): RBAC-filter tables; align today with now (UTC)
2026-05-04 05:57:22 +02:00
test_claude_md_template_repo.py
feat(db,repo,renderer): schema v23 + claude_md_template + ClaudeMd renderer
2026-05-03 22:43:56 +02:00
test_claude_sessions.py
fix(push): read sessions from ~/.claude/projects/<encoded-cwd>/
2026-05-04 20:29:59 +02:00
test_clean_install_integration.py
test: clean-install integration suite (minimal/zero grants, force, pre-init)
2026-05-04 19:22:24 +02:00
test_cli.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_cli_admin.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_admin_materialized.py
fix(admin): register-table real-world UX gaps for materialized BQ
2026-05-04 23:06:17 +02:00
test_cli_admin_metrics.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_cli_artifacts.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_auth.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_binary_rename.py
feat(cli): rename binary from da to agnes (BREAKING)
2026-05-04 16:05:14 +02:00
test_cli_catalog.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_catalog_metrics.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_cli_diagnose.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_diagnose_system.py
fix(tests): strip ANSI escapes from --help output before substring asserts
2026-05-04 19:43:47 +02:00
test_cli_disk_info.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_error_render.py
fix: update legacy-string assertions in tests + onboarding template
2026-05-04 20:08:07 +02:00
test_cli_explore.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_init.py
fix(devin-review): stale-token override + status sessions counter + lock comment
2026-05-04 21:26:30 +02:00
test_cli_pull.py
fix(tests): strip ANSI escapes from --help output before substring asserts
2026-05-04 19:43:47 +02:00
test_cli_push.py
fix(tests): strip ANSI escapes from --help output before substring asserts
2026-05-04 19:43:47 +02:00
test_cli_query.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_query_render.py
fix(post-merge): clean up stale da verbs introduced via #174 merge
2026-05-04 20:57:36 +02:00
test_cli_server.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_snapshot.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_cli_snapshot_create.py
fix(post-merge): clean up stale da verbs introduced via #174 merge
2026-05-04 20:57:36 +02:00
test_cli_status.py
fix(tests): strip ANSI escapes from --help output before substring asserts
2026-05-04 19:43:47 +02:00
test_cli_update_check.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_column_metadata.py
test_connector_kit_poc.py
test_corporate_memory_collector.py
test_corporate_memory_relations.py
feat(admin): users/groups UI polish + SSO lock + v18 migration ( #142 )
2026-04-30 15:16:04 +02:00
test_corporate_memory_v1.py
feat(memory): corporate memory v1+v1.5 + 0.15.0 ( #72 )
2026-04-29 07:16:22 +02:00
test_db.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_db_remote_attach_security.py
fix(security): #81 Group A — orchestrator attach hardening (squashed) ( #95 )
2026-04-27 21:34:04 +02:00
test_db_schema_version.py
feat(store): /store + /my-ai-stack — community marketplace + per-user composition
2026-05-05 02:53:49 +02:00
test_diagnose_billing.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_docker_full.py
fix(tests): align docker-e2e health asserts with current /api/health shape
2026-05-03 11:21:19 +02:00
test_duckdb_manager.py
test_duckdb_panel.py
feat(observability): request_id end-to-end + dev debug toolbar + centralized logging ( #136 )
2026-04-29 22:54:21 +02:00
test_e2e_api.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_e2e_corporate_memory.py
feat(memory): corporate memory v1+v1.5 + 0.15.0 ( #72 )
2026-04-29 07:16:22 +02:00
test_e2e_docker.py
fix(tests): drop stale 'healthy' from /api/health status assert
2026-05-03 15:40:41 +02:00
test_e2e_extract.py
test_extractor_identifier_validation.py
fix(security): #81 Group D — extractor-side identifier validation (squashed) ( #97 )
2026-04-27 21:46:17 +02:00
test_fixtures_smoke.py
test: clean-bootstrap fixtures (fastapi_test_server, test_pat, zero_grants_workspace)
2026-05-04 19:11:54 +02:00
test_generate_sample_data.py
test_google_group_prefix_sync.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_group_sync.py
feat(auth): Google Workspace group prefix filter + system mapping ( #131 )
2026-04-29 14:08:04 +02:00
test_groups_mapped_email.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_instance_config.py
test_jira_incremental.py
test_jira_service.py
test_jira_service_full.py
test_jira_validation.py
test_jira_webhooks.py
feat(ci+tests): deploy safety audit — linting, rollback, smoke tests, 50+ new tests ( #120 )
2026-04-29 09:18:55 +02:00
test_journey_analyst.py
test_journey_bootstrap_auth.py
fix(security+ops) + release(0.12.1): #82 #85 #87 hardening + cut 0.12.1 ( #104 )
2026-04-28 19:57:30 +02:00
test_journey_hybrid.py
test_journey_jira.py
test_journey_memory.py
test_journey_multisource.py
test_journey_rbac.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_journey_sync_query.py
fix(admin-api): keep source_type validator permissive when primary is 'local' (bootstrap)
2026-05-01 23:09:15 +02:00
test_keboola_access.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_keboola_extension_query_passthrough.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_keboola_extractor.py
feat(ci+tests): deploy safety audit — linting, rollback, smoke tests, 50+ new tests ( #120 )
2026-04-29 09:18:55 +02:00
test_keboola_extractor_exit_codes.py
fix(ops): #81 Group B — Keboola partial-failure exit code 2 (squashed) ( #99 )
2026-04-27 21:52:46 +02:00
test_keboola_extractor_full.py
test_keboola_init_extract_skips.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_keboola_materialize.py
fix(materialized): address 4 Devin Review findings on PR #152
2026-05-01 20:58:17 +02:00
test_keboola_materialized_e2e.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_legacy_strings_scan.py
feat(admin): yellow banner for legacy CLI verbs in workspace-prompt override
2026-05-04 17:46:50 +02:00
test_lib_hooks.py
chore(lint): drop unused imports from new test files (ruff F401)
2026-05-04 19:32:31 +02:00
test_lib_pull.py
fix(pull): re-download parquet when file missing despite matching hash
2026-05-04 21:12:06 +02:00
test_live_bigquery.py
test_live_jira.py
test_live_keboola.py
test_llm_connector.py
test_llm_providers_full.py
test_logging_config.py
feat(observability): request_id end-to-end + dev debug toolbar + centralized logging ( #136 )
2026-04-29 22:54:21 +02:00
test_marketplace.py
feat(rbac+marketplace): RBAC v13 + Claude Code marketplace + #81/#83/#44 hardening
2026-04-28 14:25:04 +02:00
test_marketplace_filter.py
fix(marketplace): use plugin.json name in synth marketplace.json ( #133 )
2026-04-29 19:25:57 +02:00
test_marketplace_filter_store.py
feat(store): /store + /my-ai-stack — community marketplace + per-user composition
2026-05-05 02:53:49 +02:00
test_marketplace_server_git.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_marketplace_server_zip.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_materialized_e2e.py
fix(bq-materialize): wrap admin SQL in bigquery_query() so views work
2026-05-04 16:40:40 +02:00
test_me_debug.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_memory_api.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_metadata_api.py
feat(admin): #108 M1 — BigQuery table registration in UI + CLI ( #119 )
2026-04-29 13:18:31 +02:00
test_metrics.py
test_migration.py
test_no_override_file.py
fix(security+ops) + release(0.12.1): #82 #85 #87 hardening + cut 0.12.1 ( #104 )
2026-04-28 19:57:30 +02:00
test_openapi_snapshot.py
test_openmetadata_client.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_openmetadata_enricher.py
test_openmetadata_transformer.py
test_orchestrator.py
feat(ci+tests): deploy safety audit — linting, rollback, smoke tests, 50+ new tests ( #120 )
2026-04-29 09:18:55 +02:00
test_orchestrator_remote_attach_security.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_password_flows.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_pat.py
refactor(cli): hard-cutover env vars + config dir to AGNES_*
2026-05-04 16:35:44 +02:00
test_profiler.py
test_query_bigquery_query_blocked.py
test(query): #160 RED tests for guardrail+quota+RBAC+blocklist
2026-05-04 10:31:35 +02:00
test_query_bq_regex.py
sec(query): #160 BQ_PATH catches quoted "bq" catalog token (Phase 3 review)
2026-05-04 10:31:35 +02:00
test_query_materialized_error_message.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_rbac.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_reader_smoke_matrix.py
fix(tests): smoke matrix asserts no-traceback only (per-command rc varies)
2026-05-04 19:47:18 +02:00
test_remote_query.py
fix(v2): #134 BigQuery cross-project errors return structured 502/400 + BqAccess facade ( #138 )
2026-04-30 10:11:20 +02:00
test_remote_query_error_details.py
feat(cli): #160 shared structured error renderer for BQ-typed responses
2026-05-04 10:31:35 +02:00
test_repositories.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_request_id_middleware.py
feat(observability): request_id end-to-end + dev debug toolbar + centralized logging ( #136 )
2026-04-29 22:54:21 +02:00
test_resource_types.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_router_ca_pem.py
feat(setup): cross-platform TLS bootstrap + marketplace plugin install ( #137 )
2026-04-30 08:56:45 +02:00
test_run_due_scripts.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_run_materialized_pass_in_flight_skip.py
feat(sync): treat MaterializeInFlightError as 'skipped, in_flight'
2026-05-04 18:11:38 +02:00
test_scheduler.py
test_scheduler_full.py
test_scheduler_sidecar.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_schema_v24_source_query_rewrite.py
fix(schema-v24): raise on deferred migration so retry path actually runs (Devin Review on db.py:1757)
2026-05-04 23:11:34 +02:00
test_scripts_api.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_security.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_selective_gzip.py
feat(web): rename /install → /setup; nav label 'Setup local agent'
2026-05-03 16:12:13 +02:00
test_session_collector.py
test_settings_api.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_setup_hooks_template.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_setup_instructions.py
test(setup-instructions): pin no-legacy-da-verbs invariant
2026-05-04 22:20:40 +02:00
test_setup_page_unified.py
refactor(setup-page): drop role query param
2026-05-04 22:16:59 +02:00
test_snapshot_meta.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_sql_safe.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_store_api.py
feat(store): /store + /my-ai-stack — community marketplace + per-user composition
2026-05-05 02:53:49 +02:00
test_store_naming.py
feat(store): /store + /my-ai-stack — community marketplace + per-user composition
2026-05-05 02:53:49 +02:00
test_store_repositories.py
feat(store): /store + /my-ai-stack — community marketplace + per-user composition
2026-05-05 02:53:49 +02:00
test_sync_filter.py
feat(scheduler): re-wire sync_schedule + script.schedule; tune via env; OpenMetadata TLS ( #135 )
2026-04-29 22:06:30 +02:00
test_sync_manifest.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_sync_trigger_keboola_materialized.py
fix(materialized): address 4 Devin Review findings on PR #152
2026-05-01 20:58:17 +02:00
test_sync_trigger_materialized.py
chore(docs): replace stale da verbs and vendor-specific install paths
2026-05-04 21:22:19 +02:00
test_table_registry_find_by_bq_path.py
feat(repo): #160 add find_by_bq_path lookup for direct bq.* RBAC enforcement
2026-05-04 10:31:35 +02:00
test_table_registry_source_query.py
feat(materialized): query_mode='materialized' for BigQuery + Keboola — admin SELECT → parquet → analyst
2026-05-01 20:25:56 +02:00
test_tagger.py
feat(memory): corporate memory v1+v1.5 + 0.15.0 ( #72 )
2026-04-29 07:16:22 +02:00
test_telegram_api.py
test_telegram_bot.py
test_telegram_storage.py
test_tokens_bootstrap_scope.py
test(tokens): tighten scope-default + add precedence + audit + reserved-key tests
2026-05-04 17:07:02 +02:00
test_toolbar_integration.py
feat(web): rename /install → /setup; nav label 'Setup local agent'
2026-05-03 16:12:13 +02:00
test_upload_api.py
test_user_management.py
security(auth): per-IP rate limit + last-admin guard ( #165 )
2026-05-02 21:08:33 +02:00
test_users_sso_flag.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_v2_arrow.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_v2_cache.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_v2_catalog.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_v2_client.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_v2_quota.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_v2_sample.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_v2_scan.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_v2_scan_estimate.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_v2_schema.py
feat(rbac): drop dataset_permissions + users.role + is_public; v19 migration ( #150 )
2026-04-30 22:02:16 +02:00
test_view_collision_detection.py
fix : #81 Group C — view-name collision detection (schema v10, squashed) ( #100 )
2026-04-27 22:09:49 +02:00
test_web_ui.py
refactor(setup-page): drop role query param
2026-05-04 22:16:59 +02:00
test_welcome_template_api.py
refactor(welcome-template): drop role param; resolve plugins per-user unconditionally
2026-05-04 22:13:46 +02:00
test_welcome_template_migration.py
feat(db): schema v15 — welcome_template singleton table
2026-05-03 16:10:48 +02:00
test_welcome_template_renderer.py
refactor(welcome-template): drop role param; resolve plugins per-user unconditionally
2026-05-04 22:13:46 +02:00
test_welcome_template_repo.py
feat(repo): WelcomeTemplateRepository singleton CRUD
2026-05-03 16:10:48 +02:00
test_where_validator.py
feat(v2): claude-driven fetch primitives + 0.14.0 ( #102 )
2026-04-29 01:07:19 +02:00
test_ws_gateway.py