thth 3.18.2__tar.gz → 3.18.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {thth-3.18.2 → thth-3.18.3}/PKG-INFO +1 -1
- {thth-3.18.2 → thth-3.18.3}/tests/test_v214_x_adapter.py +2 -0
- thth-3.18.3/thth/VERSION +1 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/x.py +5 -1
- thth-3.18.2/thth/VERSION +0 -1
- {thth-3.18.2 → thth-3.18.3}/.gitignore +0 -0
- {thth-3.18.2 → thth-3.18.3}/LICENSE +0 -0
- {thth-3.18.2 → thth-3.18.3}/README.md +0 -0
- {thth-3.18.2 → thth-3.18.3}/accounts.example/bluesky.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/accounts.example/mastodon.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/accounts.example/threads.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/accounts.example/x.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/bin/thth +0 -0
- {thth-3.18.2 → thth-3.18.3}/bin/thth-remote +0 -0
- {thth-3.18.2 → thth-3.18.3}/bin/thth-run +0 -0
- {thth-3.18.2 → thth-3.18.3}/mcp/server.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/pyproject.toml +0 -0
- {thth-3.18.2 → thth-3.18.3}/skills/thth/SKILL.md +0 -0
- {thth-3.18.2 → thth-3.18.3}/skills/thth-admin/SKILL.md +0 -0
- {thth-3.18.2 → thth-3.18.3}/systemd/thth@.service +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/__init__.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/conftest.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/coordination_snapshot.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/fixtures/GraphemeBreakTest-17.0.0.txt +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/fixtures/build_injection_eval.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/fixtures/callback/worker_responses.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/fixtures/injection_eval.json +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/fixtures/umami-bile.md +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/__init__.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_oauth_server.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_push_adapter.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_redirect_server.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_search_adapter.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_threads_reader.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_threads_status.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_threads_writes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/fake_x.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/hold_lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/hold_repo_lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/helpers/worker_probe.mjs +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_27_acceptance_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_account_name_check.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_account_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_accounts_dir.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_adapter_boundary.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_admin_http_mcp.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_admin_log.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_admin_notifications.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_admin_repairs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_admin_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_after_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_analytics_comparison.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_analytics_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_api_diagnostic.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_api_error_body.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_app_env_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_approval.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_approve_cmd.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_ask.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_atlas_fifth_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_atlas_fourth_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_atlas_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_atlas_second_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_atlas_third_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit1_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit2_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_b_counterexamples.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_b_m1_semantics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_b_n1_depth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_b_r1_closure.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_v201.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_audit_v23_details.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_auth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_auth_identity_required.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_behind_remote.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_bluesky_adapter.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_bluesky_secret_scrub.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_board_needs_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_board_running.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_branch_replies.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_bundle.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_bundle_not_type_mismatch.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_charcount.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_cli_entrypoint.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_cli_help.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_cli_vm_path.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_collect.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_collect_engagements.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_collect_runs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_collect_sent.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_comparability.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_control_chars_refused.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_conversation_paging.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_count_for.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_docs_links.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_doctor.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_doctor_all_permissions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_doctor_next_step.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_duplicate_front_matter_keys.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_editorial_audit.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_editorial_n3_n4.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_engagements.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_external_acceptance.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_fake_api.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_form_spec.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_form_spec_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_forms.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_fresh_install.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_front_matter_injection.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_healthcheck_notifications.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_hypotheses.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_hypothesis_boundaries.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_hypothesis_units.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_impact_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_inbox_granted_scopes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_incident_notifications.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_independent_thread_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_independent_topic_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_independent_topic_review_r2.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_inflight.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_inflight_tag_body_hash.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_jst.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_lint.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_list_projections.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_llm_trial.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_llm_trial_engage.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_m2_independent.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_maintain.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_mastodon_adapter.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_mastodon_visibility.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_max_per_run.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_mcp.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_mcp_robustness.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_measured.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_media_accounts.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_media_next_steps.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_media_roundtrip.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_mismatch_diagnostics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_n5_reply_null_element.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_n6_replies_incomplete_ledger.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_n7_doctor_error_body.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_no_limits.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_observation_provenance.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_operations_handoff.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_packaging.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_preview.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_production_mode.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_pull_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_pulse.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_queue.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_quiet_hours.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_r2_r4_r5.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_read_cli_bare_runtimeerror.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_reason_adoption.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_redact.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_redirect_token_leak.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_refresh.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_refresh_destination.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_rejudge_new.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_rejudge_r2_r3.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_replies.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_replies_refresh.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_repo_lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_repo_sync.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_report_checkout_import.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_report_http.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_report_isolation.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_report_service.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_retract_already_gone.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_reverse_audit.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_case_id_cluster_m2.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_case_id_cluster_r2.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_evidence_account.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_form_spec_and_case_id.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_provenance.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_review_records.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_revoke.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_roundtrip.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_run_missing_env.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_run_record_failclosed.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_runs_collected.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_runs_read_rows.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_schedule_multiple.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_schedule_view.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_scopes_source_requested.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_search_engage_targets.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_search_media_routes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_secret_value_redact.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_secrets_grep.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_security_small_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_select.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_selfupdate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_send.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_send_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_send_control_chars.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_send_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_send_visibility.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_sent_integrity.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_server_json.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_site.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_skill_doc.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_study_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_systemd.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_thread_publish.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_thread_read.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_threadrun.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_threads_read_permissions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_threadshape.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_thth_root.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_token_exists.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_token_scopes_record.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_token_set.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_advice.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_models.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_review_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_shelf_observers.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topic_store.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topics_record_concurrent.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_topics_tool.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_trial_frictions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_admin_transaction.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_approve_account.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_json_contract.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_length.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_lock_wait.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_mastodon_scopes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_mentions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_post_urls.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_repo_paths.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_reposts.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_study_add.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_tool_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_unanswered.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_unanswered_scope.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_where_arguments.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_where_filters.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v210_who_arguments.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_auth_integration.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_authflow.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_bluesky_stdin.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_doctor_binding.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_mastodon_auth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v211_x_auth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_ask_coordination.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_budget.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_budget_auth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_budget_mcp.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_deletion.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_leave.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_leave_gate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_leave_providers.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_leave_token_safety.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_mastodon_guide.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_mcp_compat.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_missing_token.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_read_coordination.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_relay.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_server_writes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_token_parent.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v212_write_storage.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2131_send_dry_run.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2131_threads_publish_wait.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2132_send_inflight_hint.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2132_threads_create_timeout.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2132_threads_create_unknown.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_acceptance_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_adts_asf.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_attachment_kinds.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_external.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_metadata.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_metadata_uri.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_metadata_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_record.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_record_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bluesky_webm_named.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_bmff_typed_metadata.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_budget_lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_capabilities.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_carryover_timeout.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_graphemes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_auth_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_bmff_audio.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_flac.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_gif.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_link.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_mp3.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_ogg_opus.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_ogg_vorbis.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_poll.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_primary_size_boundary.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_quote.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_thumbnail.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_wav.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_webm_audio.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_mastodon_webm_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_cleanup.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_formats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_foundation.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_prepared.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_relay.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_relay_refusals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_media_upload.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_review_followups.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_stage810_audit.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_static_diagnostics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_stop_observation.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_systemd_worker.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_ghost.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_gif.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_link.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_media_spoiler.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_poll.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_quote.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_quote_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_replies.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_text.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_text_spoiler.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_threads_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_transport_review.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_video_typed_metadata.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_vorbis_comment_boundary.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v213_webm_schema_boundary.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2141_draft_lint_reason.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v2141_managed_repo_umask.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v214_release_signing.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v214_x_auth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v214_x_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v214_x_posts_budget.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v21b_approved_writes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v28_tags.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_invite_admin_approval.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_invite_create.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_invite_credential.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_invite_limits.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3100_invite_worker.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v310_morning.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v310_search_timeout.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v310_watch_words.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3111_observe_counts_only.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3111_observe_no_world.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_leave_same_user.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_mastodon_retract.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_morning_overdue.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_morning_own_exclusion.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_morning_unanswered_window.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_notifications_guidance.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v311_replies_owned.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3120_activity.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3120_admin_write_reasons.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3120_guard.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3120_worker_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_leave_shared_token.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_own_handles_stopped.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_report_admin.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_report_channel.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_report_inbox.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v312_report_mcp_user.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3140_api_relay.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3140_invite_key.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3140_remote_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3140_server_reads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3142_browser_login.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3143_activity_push.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3143_cli_umask_leave.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3143_inflight_remote.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3143_managed_repo_recover.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v315_reactions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v317_run_lock_wait.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3180_json_names.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3180_map_timer.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3180_where_filters.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v3180_where_keep.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v31_analysis.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v31_collection.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v320_reply_to_file_display.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v320_reply_to_file_lint.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v320_reply_to_file_resolve.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v320_report_fixes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_fingerprint_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_held.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_held_names.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_last_refusals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_notification_route.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_observe.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_report_friction.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_report_words.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v330_reports_effect.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v331_inflight_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v331_listing_resolve.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v331_outbox_retention.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v331_publish_status.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v331_self_resolve.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_fields.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_mcp.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_morning.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_observe.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_open.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_open_confirm.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_reply.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v340_plaza_store.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_nodes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_observe.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_plaza.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_retention.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_self.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_show.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v350_map_world.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v351_leave_timers.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v351_plaza_open_holes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v351_who_owned.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_analytics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_observe_map.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_plaza.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_record.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_goal_send.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v360_report_timeline.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_account_self_healing.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_approve_pending.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_click_attribution.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_collection_stale_basis.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_follow_comparison.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_local_path.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_weekly_goals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_where_aggregate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_where_also.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v370_where_zero.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_digest.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_from.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_mcp.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_moments.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_owner.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_received.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v380_plaza_triggers.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v381_plaza_visibility_default.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v382_confirm_file.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v382_first_stage_not_refusal.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v382_reader_lock_and_push_pending.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v382_sync_without_fetch_head.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v390_docs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v390_per_post_clicks.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v390_where_rate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v390_where_suggest.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_v391_plaza_text_numbers.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_value_domains_shown.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_where_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_where_threads_tag_author.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_who_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_writeback_rebase.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_writeback_validate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_x_list.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_x_metrics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_x_owned_metrics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_x_search_thread.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/tests/test_x_token_autorefresh.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/__init__.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/__main__.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/_grapheme_data.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/account_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/account_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/account_settings.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/accounts.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/activity.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/__init__.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/auth_mastodon.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/auth_threads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/auth_x.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/base.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/bluesky.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/bluesky_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/bluesky_video.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/mastodon.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/mastodon_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/threads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/threads_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/adapters/x_media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/admin_diagnose.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/admin_log.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/admin_notifications.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/admin_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/after_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_clicks.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_comparison.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_goals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_shapes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_threads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/analytics_weekly.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/api_diagnostic.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/api_requests.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/appconfig.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/appenv.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/approval.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/approve_pending.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/ask.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/ask_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/audioformats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/authclients.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/authflow.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/authpassword.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/bluesky_metadata.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/budget_x.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/budget_x_posts.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/bundle.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/click_attribution.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/collect.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/collection_context.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/collection_status.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/core.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/deletion.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/doctor.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/ebmlaudio.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/ebmlvideo.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/engagements.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/fingerprint_golden.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/flacformats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/forms.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/goals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/graphemes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/guard.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/handoff_cursor.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/healthcheck.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/httpsafe.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/incident.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/inflight.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/inflight_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/inflight_resolve.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/invites.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/jst.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/leave.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/leave_gate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/lint.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/list_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/lock.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/maintain.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/managed_repo.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/map_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/map_store.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/map_view.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/map_world.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/measured.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media_capabilities.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media_cleanup.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media_delivery.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media_relay.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/media_uploads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/mediaformats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/morning.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/mpeg_audio.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/notification_route.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/oauth.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/oggformats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/operations_handoff.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_from.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_moments.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_observe.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_reads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/plaza_redact.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/postid.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/private_store.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/pulse.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/queuefile.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/reaction_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/reactions.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/read_coordination.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/read_window.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/redact.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/refusals.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/relay.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/remote.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/replies.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_details.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_http.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_inbox.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_isolation.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_service.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/report_timeline.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/retract_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/runs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/scopes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/secrets_fs.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/select.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/selfupdate.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/sent.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/server_files.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/server_reads.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/server_writes.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/stop_observation.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/study_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/study_report.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/systemd_gen.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/tags.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/thread_read.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/threadrun.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/threads_read_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/threadshape.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/threadthrow.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/timer_cleanup.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/tool_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/topic_advice.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/topic_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/topic_models.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/topic_store.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/topics.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/unanswered.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/vorbisformats.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/watch_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/where_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/where_keep.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/where_suggest.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/who_cli.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/worker.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/worker_version.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/writeback.py +0 -0
- {thth-3.18.2 → thth-3.18.3}/thth/x_metrics.py +0 -0
|
@@ -223,6 +223,8 @@ def test_after_an_unknown_the_next_send_refuses_without_touching_the_provider(
|
|
|
223
223
|
# ----- 403 の本文から静的な符丁(10/13 関東の返信の 403) --------------------
|
|
224
224
|
|
|
225
225
|
@pytest.mark.parametrize('body,expected', [
|
|
226
|
+
(b'{"type":"https://api.twitter.com/2/problems/not-authorized-for-resource","title":"Authorization Error","detail":"You can only reply to or quote posts where you are mentioned or are the author."}',
|
|
227
|
+
'x_publish_http_403: x_reply_not_engaged'),
|
|
226
228
|
(b'{"detail":"Reply to this conversation is not allowed because you have not been mentioned or otherwise engaged by the author of the post you are replying to.","title":"Forbidden","status":403}',
|
|
227
229
|
'x_publish_http_403: x_reply_not_engaged'),
|
|
228
230
|
(b'{"detail":"You are not permitted to perform this action.","title":"Forbidden","status":403}',
|
thth-3.18.3/thth/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.18.3
|
|
@@ -115,8 +115,12 @@ def rate_limit(error):
|
|
|
115
115
|
# 投稿の 4xx の本文から**静的な符丁だけ**を引く(provider の文面は理由に混ぜない・
|
|
116
116
|
# `rate_limit()` と同じ流儀)。10/13 関東の返信が `x_publish_http_403` だけを残し、
|
|
117
117
|
# 「返信先の投稿者から関わりが無い」制限か、アカウントの制限かを見分けられなかった。
|
|
118
|
-
#
|
|
118
|
+
# 先頭の 1 行は 10/13 に実機で取れた文面(L1)。残りはフォーラムで報告されている形(L3)。
|
|
119
119
|
PUBLISH_REFUSALS = (
|
|
120
|
+
# 10/13 実機(関東・3.18.2 で取れた・L1): "You can only reply to or quote posts where
|
|
121
|
+
# you are mentioned or are the author."(自己サーブでは、自分がメンションされた投稿か
|
|
122
|
+
# 自分の投稿にしか返信・引用できない)。
|
|
123
|
+
('you can only reply to or quote posts where you are mentioned', 'x_reply_not_engaged'),
|
|
120
124
|
('not been mentioned or otherwise engaged', 'x_reply_not_engaged'),
|
|
121
125
|
('reply to this conversation is not allowed', 'x_reply_not_engaged'),
|
|
122
126
|
('duplicate content', 'x_duplicate_content'),
|
thth-3.18.2/thth/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.18.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|