All notable changes to the Services Enablement Platform (SEP) are documented in this file.
The format is based on Keep a Changelog.
v0.13.1 - 2026-07-08
- SEP-1474: Periodically purge aged task-execution logs (taskhistory_log) to bound SEP database growth
- SEP-1486: Bound per-execution task log growth: a rolling per-stream byte cap drops the oldest captured-log chunks so a long-running execution's logs no longer grow without limit; capped streams keep a bounded recent tail.
- SEP-1474: Add tasks settings LOG_RETENTION_DAYS (runtime-overridable, default 90, max 365), LOG_PURGE_BATCH_SIZE (default 10000), and LOG_PURGE_INTERVAL (default daily)
- SEP-1486: Add LOG_STREAM_CAP_BYTES and LOG_STREAM_EVICTION_MAX_ROWS (tasks) to bound retained captured-log bytes per (task_history, source, stream) and per-flush eviction work.
- SEP-1297: PostgreSQL Backup stanza field: expose required pgBackRest stanza on the create form so backups run with the correct --stanza value instead of the node IP
- SEP-1490: Task logs are no longer duplicated or lost when the Nomad log fetch cursor moves between worker processes (the raw fetch frontier is now persisted per allocation).
- SEP-1490: The settings export endpoint no longer returns a 500 error when a URL-typed setting (such as the base URL) has a value; URL settings now serialize to their string form.
- SEP-1492: Backup tasks created before the v0.13.0 plugin rename no longer fail with a Python SyntaxError after upgrade; orphaned payload references are healed by a data migration and resolved via a relocation-stable relative reference.
- SEP-1544: Fixed PostgreSQL Config File Collector snippet failing to collect postgresql.auto.conf due to permission errors when the file is postgres-owned mode 0600.
v0.13.0 - 2026-06-09
- SEP-432: MongoDB query tuning snippet
- SEP-433: MongoDB pt-pmp snippet for collecting aggregated stack traces from an unresponsive mongod, defaulting to the eu-stack (pteu) dumper
- SEP-434: MongoDB "blocked writes" diagnostics snippet (
mongodb_blocked_writes_check.sh) that periodically samplespt-summary, MongoDB internals (serverStatus,currentOp,mongostat) and OS metrics (vmstat,iostat,mpstat,sar,top) into a destination directory; stop early by creating anexit-percona-monitormarker file. - SEP-448: MHA diagnostic snippets to collect MHA configuration files (
mha_config_files.sh) and extract MHA manager/node log files (mha_logs_extractor.sh). - SEP-1022: SEP now runs a Celery beat check on the configured Nomad TLS files (CA and client PEM) and opens or resolves PagerDuty alerts (via
ALERTING.PROVIDERS) when a certificate is inside the configured warning window beforenot_valid_after(default: 7 days). The threshold is set withTASKS.NOMAD.CERT_EXPIRY_WARN_DAYSinsettings.yaml. The beat schedule defaults to once per day and is controlled byTASKS.NOMAD.CHECK_CERT_EXPIRY_INTERVAL(set tonullto disable the periodic task). - SEP-1026: PostgreSQL config file collector snippet (postgresql.conf, postgresql.auto.conf, includes) with optional masking of sensitive values
- SEP-1033: Add support for
gcloud storageuploads in Backups - SEP-1045: Archives plugin now supports remote
pt-archiverdestinations: pick a destination MySQL service from inventory or enter a host/port/database manually, and the detail page displays the resolved destination. Existing same-server tasks are unaffected.
- SEP-1102: Rename MySQL backups plugin identifiers from backup/backups to mysql_backups (module, URI path, templates, CSS, route names)
- SEP-1226: Accept legacy backup / backups values for plugin MODULE_NAME and remap them to mysql_backups with a deprecation warning. The legacy aliases will be removed in the next release; update settings.yaml overrides accordingly.
- SEP-1102: The
/backups/*URL path is removed — bookmarks, dashboards, and scripts referencing it will 404;settings.yamldeployment overridesMODULE_NAME: backup/URI_PATH: /backupsmust be changed tomysql_backups//mysql_backups.
- SEP-879: pcs-collect-pmm-mysql.py now verifies SSL certificates by default; pass --insecure to disable for self-signed cert environments
- SEP-999: make checkmigrations no longer fails when alerts plugin is enabled; plugin-owned DB tables are now managed through Alembic via plugin-scoped migration directories and branch labels
- SEP-1108: Inventory connectivity check now resolves the Nomad target by address instead of passing the inventory display name through, fixing failures on hosts where the inventory and Nomad node names differ
- SEP-1134: Dipper legacy UI now pre-fills the executor host when the inventory display name differs from the Nomad client node name (matching the inventory dropdown's address-based resolution)
- SEP-1204: PMM STARTED annotation now posts for periodic and chained task dispatches
- SEP-1207: PostgreSQL Backups plugin no longer crashes with NoMatchFound when mysql_backups is not also enabled
- SEP-1224: Archives task creation/edit form no longer returns HTTP 422 when optional integer fields (DEST_PORT, LIMIT, SLEEP, etc.) are left empty; form-binding 422s now surface as flash messages on the originating page instead of rendering as a raw JSON blob in the browser
- SEP-1225: Binlog backup tasks now complete successfully without AttributeError when child process exits
- SEP-1232: Schema Change (alters) Recursion method dropdown now offers
hostsinstead of the invalidhost, sopt-online-schema-changeaccepts the value and discovers replicas correctly. A one-shot data migration rewrites any legacy--recursion-method=hoststored in existing tasks tohosts. - SEP-1239: Persist and restore the binlog backup task's Alternative Host Address so the edit form pre-populates it correctly.
- SEP-1254: Executor host lookups against a host-only Nomad endpoint no longer fail with "Executor backend unreachable: Expecting value" (the endpoint's trailing slash is now stripped before the Nomad API call).
- SEP-1254: Installer compose now runs
alembic upgrade heads(plural) for every service, so deployments no longer fail to migrate the multi-headsepschema. - SEP-1260: Tasks API
/hosts/now returns 502 JSON when the executor backend is unreachable or returns a non-JSON body, so the SEP dashboard banner surfaces the real cause instead of a generic 500. - SEP-1286: Round-trip S3, GSUTIL, and RSYNC storage-target fields through the backup task YAML so the edit form pre-populates them consistently.
- SEP-1302: Archiver: allow entering a destination schema manually when the destination host is the same as source
- SEP-1304: Legacy Jinja archiver form: the Destination File field is now reachable (visible and submittable) when no destination table is selected, so archiving to a file works again
- SEP-1305: Archiver task creation now accepts destinations that share only the table name with the source; the same-table check compares full host + schema + table identity instead of the bare table name.
- SEP-1307: Archiver PMM annotations now attach to the source database node instead of the executor host
- SEP-1309: PostgreSQL Snippet Manager scripts now accept a configurable target database (dbname parameter, default postgres) and thread it into every psql call, so they connect successfully instead of failing when the connecting OS user has no same-named database.
- SEP-1312: Archiver: renamed the misleading 'Delete Data' toggle to 'Delete Without Archiving' and clarified its helper text (it purges source rows instead of archiving them).
- SEP-1130: Upgrade
makoto remediate a directory-traversal weakness via backslash paths on Windows. - SEP-1283: Upgrade Starlette to >=1.0.1 and FastAPI to >=0.136 to remediate CVE-2026-48710 (malformed Host header bypass via request.url).
- SEP-1285: Upgrade
yarlto >=1.24.2 to remediate AIKIDO-2026-10912 (URL-parser host confusion via malformed authority/host strings).
v0.12.1 - 2026-05-05
- SEP-1093: Restore chained task dispatch when the task page is open during the parent task's completion
- SEP-1101: Dipper PMM collector now references the top-level PMM config path in error messages and form-field descriptions
- SEP-1103: Continue chain on failure setting on chained periodic tasks now hydrates correctly when editing the task in the legacy Scheduled tasks panel
v0.12.0 - 2026-04-30
- SEP-446: Snippets for ProxySQL logs
- SEP-449: Snippets for ProxySQL status
- SEP-491: Automatic PMM annotations for task lifecycle events (STARTED, COMPLETED, FAILED, STOPPED, LOST)
- SEP-503: PagerDuty alert triggered on inventory sync item failure
- SEP-562: Backup tasks can be chained — when scheduling a backup execution, select a follow-up task to dispatch automatically once the primary task reaches a terminal state, regardless of outcome
- SEP-687: Mydumper payload writes a lockfile on the source host to prevent concurrent backups against the same instance
- SEP-709: Snippet parameters can be organized into labeled groups in execution forms via a
groupsfrontmatter field - SEP-711: Nomad job events are collected and surfaced alongside task history for richer dispatch diagnostics
- SEP-748: NodeAgentDown alert snippet
- SEP-796: Inventory sync registered as a periodic task; schedules can be created and edited from the inventory plugin and execution history is tracked alongside other task types
- SEP-808: Alert snippets for StaleBackup, StaleUpload, StaleBackupLog, StaleUploadLog, and BackupFailed
- SEP-812: Alert snippets for PostgreSQLLockConflicts, PostgreSQLCommitRateLow, and PostgreSQLTooManyConnections
- SEP-842: Alert snippets for PostgreSQLUptime, PostgreSQLIsDown, PostgreSQLIdleInTransaction, PostgreSQLTransactionDuration, and PostgreSQLTooManyLocksAcquired
- SEP-859: Alert snippets for PostgreSQLDeadlocks and PostgreSQLArchiveFailed
- SEP-860: Alert snippets for PostgreSQLReplicationLag, PostgreSQLExporterError, and PostgreSQLWraparound
- SEP-862: MongoDB alert diagnostic snippets
- SEP-864: MySQL alert diagnostic snippets
- SEP-882: Auto-resolve PagerDuty alerts when a failed backup task is re-executed and succeeds
- SEP-904: Alert Troubleshooting plugin with index page showing alerts grouped by service type
- SEP-905: Alert Troubleshooting detail page with AJAX snippet execution and inline terminal output
- SEP-908: Backup tasks can upload to Google Cloud Storage buckets via the
gcloud storageCLI, alongside the existing S3 and rsync upload options - SEP-913: GAS Reporting plugin: pull advisor data and monitoring metrics from PMM for a chosen timeframe, generate HTML/PDF reports, and optionally upload them to a ServiceNow knowledge base space; report generation can be scheduled directly in SEP
- SEP-921: JSON REST API for the Checksums plugin under
/api/plugins/checksums/(list, detail, create, delete tasks, and schema endpoint for SPA clients) - SEP-928: Inventory Sync split button — the chevron next to the existing sync-all control opens a dropdown that lets DBAs run a single configured syncer instead of waiting for the full chain
- SEP-932: Database connectivity check endpoint via Nomad task dispatch (MySQL, PostgreSQL, MongoDB)
- SEP-933: Manual connectivity check button on inventory service detail page
- SEP-934: Automatic connectivity check on task creation with non-blocking warnings and visual indicators
- SEP-935: Pre-execution connectivity check before Nomad task dispatch with configurable mode (disabled/warn/block) and result caching
- SEP-995: Per-task "Check connectivity" checkbox on task creation forms backed by a new
SEP.CONNECTIVITY_CHECK_DEFAULTsetting to opt out of the automatic Nomad connectivity check - SEP-997: Alert Troubleshooting: cross-tag diagnostic snippets across related alerts, and let each
alerts:entry in a snippet's frontmatter declare its ownservice_typeso a generic snippet can surface on service-specific troubleshooting pages without being duplicated - SEP-998: Batch approval of snippets from the snippets manager
- SEP-1019: Cancel stuck pending Nomad allocations once the configurable
TASKS__STALENESS_THRESHOLD_SECONDSthreshold (default 3600 s) is exceeded. Stale allocations self-abort via a prestart staleness check, surface as the newSTALEtask history status, and emit a dedupedtask_stalealert. - SEP-1040: Inline inventory-sync schedule management on the inventory node list page
- SEP-1041: Inventory-sync schedules can target a specific syncer or all syncers; the inventory page now renders one row per schedule.
- SEP-1046: MySQL Archiver tasks can now disable
--bulk-insertvia a checkbox in the create/edit form, allowingpt-archiverto run on hosts wherelocal_infile=OFF
- SEP-379: Task log streaming endpoint releases the connection promptly when the task reaches a terminal state, rather than holding it open until completion; clients can re-open the stream to follow live output
- SEP-737: Snippet form parameter tooltips replaced with info icons to prevent accidental tooltip activation on hover
- SEP-816: Reduce write amplification for
TaskHistory.execution_requestby usingJSONBon Postgres, deferring the column by default, and clearing the sync lock via targetedUPDATEinstead of a full ORM save - SEP-817: Move task logs out of
execution_request.tracking.task_logsinto a dedicated append-onlytaskhistory_logtable; legacy records continue to render via a dual-read fallback until their eventual cleanup. Thetracking.task_logsfield is no longer populated for new task histories and is no longer collapsed to a boolean inTaskHistoryResponsefor pre-migration records — API consumers that relied on the field's presence should switch to streaming the/history/{id}/logs/endpoint. - SEP-818: Add PostgreSQL and SQLite expression indexes on
taskhistory.execution_request->>'task'/->>'target'so dispatch dedup and task-history filter queries use index scans instead of scanning a narrowed candidate set - SEP-856: YAML frontmatter in snippet previews is collapsed by default and excluded from the line-count limit
- SEP-937: PMM connection settings moved to top-level
PMMconfig section (oldSEP.PMMpath still works with deprecation warning) - SEP-988: Convert
taskhistory.execution_requesttoJSONBon PostgreSQL, add a GIN indexix_taskhistory_execution_request_metaonexecution_request->'meta'usingjsonb_path_ops, and refactor_raise_if_identical_task_conflictto use jsonb-native operators on PostgreSQL (@>containment for scalar meta items, jsonb equality for list/dict meta items). MySQL and SQLite continue to use the per-key text-equality loop unchanged.
- SEP-924: Inventory list endpoints now return paginated responses with
offset/limitquery parameters - SEP-925: Tasks list routes (
GET /,GET /history/,GET /{task}/history/) now return paginated responses withoffset/limitquery parameters - SEP-937: The
SEP__PMM_FRONTENDenvironment variable has been removed. UsePMM__FRONTEND(top-level) orSEP__PMM__FRONTEND(nested under SEP.PMM) instead. - SEP-988:
_raise_if_identical_task_conflictdedup comparison on PostgreSQL is now type-strict for scalar meta values, replacing a type-loosestr(raw_value)text comparison. A dispatch withmeta.key = 1(int) no longer deduplicates against a pending task withmeta.key = "1"(string), and vice versa. Bool andNonescalar meta values were previously not deduplicated correctly on PostgreSQL (latent bugs instr(True) == "True"vs jsonb text output"true", andstr(None) == "None"vs jsonbNULL); they are now correctly deduplicated via jsonb containment. - SEP-988:
_raise_if_identical_task_conflictdedup comparison on PostgreSQL is now order-insensitive for dict-valued meta items. Two dispatches whose dict-valued meta items contain the same keys/values in different insertion orders were previously considered distinct and are now considered duplicates. MySQL and SQLite dedup semantics are unchanged. - SEP-1069:
TASKS.INVENTORY_SYNC_API_KEYremoved; replaced bySEP_INTERNAL_TOKENenv var. Affects only operators tracking v0.12.0 RCs (never shipped stable).
- SEP-491: Added
PMM.ANNOTATIONS_ENABLEDsetting (default:false) to control PMM annotation creation - SEP-491: Added
PMM.ANNOTATIONS_TIMEOUTsetting (default:5) to configure PMM annotation request timeout - SEP-929: Added
UVICORN_EXTRA_RELOAD_DIRS,UVICORN_EXTRA_RELOAD_INCLUDES, andUVICORN_EXTRA_RELOAD_EXCLUDESsettings to extend uvicorn reload paths viasettings.yaml - SEP-935: Added
TASKS.PRE_EXECUTION_CONNECTIVITY_CHECKsetting (disabled/warn/block) to control pre-execution connectivity checks before task dispatch - SEP-988: Upgrades that cross this revision run
ALTER TABLE taskhistory ALTER COLUMN execution_request TYPE jsonb USING execution_request::jsonb, which rewrites every row in thetaskhistorytable under anACCESS EXCLUSIVElock on PostgreSQL. Expected downtime impact is proportional to row count (approximately one minute per two million rows on typical production hardware); size the upgrade window accordingly for deployments with largetaskhistorytables. The Tasks API also fail-fasts at startup if the column is still plainjsonafter deploying SEP-988, with a clear remediation message pointing to the migration. - SEP-1019: New
TASKS__STALENESS_THRESHOLD_SECONDSsetting (default 3600 s) controls how long a dispatched task may wait in Nomad before self-aborting as stale.
- SEP-479: Archiver task marked a failed
- SEP-746: Backup log stream continues updating throughout the full duration of the run instead of stopping after a few seconds
- SEP-764: pt-osc pre-checks now execute against the database host selected in the task form instead of the default host
- SEP-810: pt-osc
recursion-methodDSN parameter now has validation and a sensible default value - SEP-909: Task history rows no longer remain stuck in RUNNING status after the underlying Nomad job completes
- SEP-917: Hardcoded
#fffbackground on form inline styles no longer breaks dark mode rendering - SEP-989: Xtrabackup Nomad payload further optimized to stay within Nomad's 256 KB dispatch limit
- SEP-1005: Coerce
syntax_highlightfilter input tostrso backup and archiver detail pages render correctly when task metadata contains non-string scalar values (integers, floats, booleans, None). - SEP-1018: Periodic tasks whose target host is not ready on Nomad are now recorded as FAILED TaskHistory rows with a deduped alert instead of queuing a stuck Nomad allocation.
- SEP-1049:
backup_pg-only installs no longer crash the homepage and plugin pages withNoMatchFoundwhen none of the router-gating allowlist plugins are enabled - SEP-1050: Cron schedule validation in SEP periodic-task and inventory-sync schedule forms now surfaces a clear validation message instead of a generic server error.
- SEP-1069: Scheduled inventory sync now uses a stable internal service token (
SEP_INTERNAL_TOKEN) instead of a Casdoor user access token, eliminating the periodic auth failures caused by token expiry. - SEP-1084: Archives SWAP-ARCHIVE-DROP tasks no longer crash when SWP_TABLE_SUFFIX is a date value
- SEP-883: Fixed command injection via unsanitized
backup_sourcepath in restore payload_symlink_to_real()
v0.11.0 - 2026-04-02
- SEP-777: Alert template YAML schema and loader (PMM Alerting plugin)
- SEP-778: PMM API client alerting endpoints
- SEP-779: Alert templates list page with service filter tabs
- SEP-780: Push to PMM functionality for alert templates
- SEP-781: PagerDuty contact point management widget
- SEP-782: Periodic alert rules backup
- SEP-783: Alert rules restore from backup
- SEP-602: Include RDS instances in inventory sync with
DEFAULT_EXECUTOR_HOSTsetting - SEP-800: IO/CPU/load/memory utilization alert snippets
- SEP-801: TimeDriftPMMAgents alert snippet
- SEP-867:
strict_executor_matchingsetting to fail sync when no matching executor host - SEP-804:
OPTIONAL_DEFAULT_TRUESnippetSudoOption for pre-checked sudo checkbox - SEP-807: Signed URLs for artifact downloads instead of forwarding tokens to Nomad
- SEP-424: Next execution column in periodic tasks table
- SEP-802: Internal container registry support in installer and deployment
- SEP-891: Core CSS dark mode fixes
- SEP-892: Theme-aware syntax highlighting for dark mode
- SEP-893: Dark mode for Simple Datatables
- SEP-894: Dark mode for flash messages, confirm modal, and saved-task containers
- SEP-895: Fix page-specific hardcoded colors for dark mode
- SEP-813: Execution target dropdowns show inventory node names alongside service names
- SEP-533: Improved cron mode UI for task scheduling
- SEP-794: Dipper form defaults dynamically populated from selected service and PMM context
- SEP-798: Updated Snippets Manager main page title
- SEP-749: PBM credentials path is now configurable
- SEP-400: All MongoDB restore options (batch size, workers, download buffers) now available in the UI
- SEP-698: Binlog PITR restore supports extra arguments via
BINLOG_RESTORE_EXTRA_ARGS - SEP-693: Binary log file filtering for all backup source types
- SEP-696: XB restore cleans up
.zstfiles after decompression - SEP-699: Tightened permissions on backup logs and output files
- SEP-870: Installer script respects
NO_COLORconvention - SEP-792: Secrets masked in logs and dev shell using Pydantic
SecretStr
- SEP-868: Plugin pages fail to load for services with 130K+ schemas/tables — inventory data now loaded with pagination
- SEP-811: Frequent "CSRF signatures do not match" errors — tokens now persist across requests with correct cookie attributes
- SEP-822: Mydumper + Upload fails for file permissions when XB backup was executed first
- SEP-821: Backup S3 information not available on Edit page
- SEP-889: Navbar actions dropdown items partially unclickable
- SEP-888: Login page does not display error messages for invalid credentials
- SEP-885: Sub-app lifespan never runs in standalone mode due to
__name__guard - SEP-806: Global JSON deserializer eagerly converts Task.data dicts to TaskExecutionRequest
- SEP-803: Snippet/Dipper preview content leaks outside highlight container
- SEP-795: Download button stuck on 'Preparing download' after download starts
- SEP-563: Mydumper backup log not shown in full in SEP
- SEP-855: pt-stalk execution fails due to unsupported system-only option
- SEP-854: Parameter help parsing error in
mysql_version.sh - SEP-853: Parameter help parsing error in
mysql_query_tuning.sh - SEP-841: Permission issue in
mysql_log_extractor.shwhen reading MySQL error log
- SEP-931: Upgrade
Pygmentsto 2.20.0 — CVE-2026-4539 - SEP-930: Bump
aiohttpto 3.13.4 - SEP-906: Bump
Pygmentspackage for security - SEP-731: Upgrade
Celeryto 5.6.0+ — credential leakage fix (AIKIDO-2025-10881)
- SEP-602: New
DEFAULT_EXECUTOR_HOSTsetting in MySQLSyncer configuration for RDS inventory sync - SEP-867: New
strict_executor_matchingsetting to fail sync when no matching executor host is found - SEP-749: PBM credentials file path is now configurable via settings
- SEP-802: New
CONTAINER_REGISTRYenvironment variable for using internal container registries in the installer
v0.10.3 - 2026-02-25
- SEP-662: CSRF token persistence for SPA — tokens now persist across POST requests and expire with the session
- SEP-636: Backend security hardening for the SPA proof of concept
- SEP-790: Xtrabackup S3 upload fails for incremental backups —
BACKUP_DIR_REGEXwas missing the "I" key for incremental backup directories - SEP-789: MyDumper and Binlog backup metrics use wrong names —
Enum.__format__produced malformed metric names, breaking PMM alerting
- SEP-752: Update
presidio-analyzerandpresidio-anonymizerto 2.2.361, resolving pinnedcryptographyvulnerability
v0.10.2 - 2026-02-17
- SEP-762: MyDumper backup fails on first execution — textfile collector attempted to stat the backup directory before it existed
- SEP-763: Xtrabackup post-run encryption fails — backup directory passed as string instead of
Pathobject to GPG encryption routine
v0.10.1 - 2026-02-13
- SEP-758: Backup task cannot be executed because Nomad payload size exceeded
- SEP-759: Backup MyDumper fails execution
- SEP-760: Backup MyDumper form shows the less-locking checkbox but Edit does not
v0.10.0 - 2026-02-11
- SEP-651: Data collection core engine (Dipper plugin)
- SEP-652: Dipper plugin UI with host/service selection
- SEP-648: MySQL collector scripts
- SEP-649: MongoDB collector scripts
- SEP-650: PostgreSQL collector scripts
- SEP-653: PMM collector for MySQL
- SEP-692: AWS CLI support in binary log payloads
- SEP-694: Customizable S3 upload extra arguments via
AWSCLI_S3_UPLOAD_EXTRA_ARGS - SEP-397: Enable all PBM backup configuration options in the UI
- SEP-633: Use PMM custom labels (
sep_sync: disabled) to ignore inventory entities during sync - SEP-695: Add
msp_backup_runningmetric for backup monitoring - SEP-656: Type-ahead for schema and table selection in Archive form
- SEP-718: Persistent table sort preferences saved across sessions
- SEP-550: Execution history tables default to most recent first (sorted by "Started At")
- SEP-736: Replace backup form label tooltips with info icons
- SEP-739: Disable
allow_extra_argsin all snippets to prevent unexpected behavior - SEP-740: pt-stalk uses
--run-timefor bounded execution compatible with Nomad scheduling - SEP-735: Remove output destination option from snippets
- SEP-747: MyDumper
--less-lockingregression — deprecated flag added even when disabled, breaking newer MyDumper versions - SEP-744: Cannot save task definition changes — Edit button stayed grayed out after creation
- SEP-685: Valkey services break inventory sync — unsupported service types are now skipped
- SEP-690: Backup version comparison broken on Python 3.12+
- SEP-719: Incorrect
--defaults-filehandling in several MySQL snippets - SEP-742: Snippet help messages causing execution errors
- SEP-741: Non-string snippet parameter defaults not working
- SEP-713: Various pt-summary snippet issues
- SEP-691: AWS CLI compatibility with
--include-from - SEP-715:
mysql_config_files.shparameter handling
- SEP-703: Update
urllib3to 2.6.3 - SEP-701: Update
aiohttpto 3.13.3 - SEP-728: Update
python-multipartto 0.0.22