Skip to content

Commit c13bb0b

Browse files
authored
Merge branch 'master' into master
2 parents 4520d11 + 21d5873 commit c13bb0b

Some content is hidden

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

54 files changed

+4072
-10438
lines changed

.agent/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,4 @@ This directory contains the project's technical constitution, specialized skills
5555

5656

5757
---
58-
*Generated automatically by `/doc-sync` on Sat Feb 14 11:35:52 CET 2026*
58+
*Generated automatically by `/doc-sync` on Sun Feb 15 22:45:08 CET 2026*

.agent/rules/03_execution_rules.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ To ensure quality and clarity in every development cycle, all non-trivial featur
3333
3. **Tasks (`/tasks`)**: Break down the plan into granular, ID-tracked tasks in `task.md`.
3434
4. **Implement**: Proceed with the code changes based on the approved plan and tasks.
3535
5. **Verify**: Validate the implementation through TDD and regression suites.
36+
6. **Roadmap Sync**: Update `ROADMAP.md` status (`[x]` or `[/]`) for the implemented features.
3637

3738
### **4.3. Coding Guidelines**
3839

@@ -78,6 +79,7 @@ To ensure quality and clarity in every development cycle, all non-trivial featur
7879
- _Requirement_: Adding a new test MUST have a `test:` entry in the `@Changelog`.
7980
- _Requirement_: Changing test scripts or updating infrastructure MUST have a `ci:` entry in the `@Changelog`.
8081
- _Requirement_: Changing `Makefile` or files under `build/` MUST be traced in the `@Changelog` (usually via `ci:` or `chore:`).
82+
- _Requirement_: All feature completions MUST be synchronized with `ROADMAP.md` before final PR/Commit.
8183
- _Ordering_: Changelog entries MUST be ordered by category: `chore`, `feat`, `fix`, `test`, `ci`, then others.
8284
- _Release Notes_: All release notes generated in `releases/` MUST follow the same category ordering in their "Executive Summary" section.
8385
- _Requirement_: The `/git-flow` workflow MUST always be preceded by a successful `/release-preflight` execution.

.agent/skills/cli-execution-mastery/SKILL.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,35 @@ If connection fails, use these flags to diagnose:
4949
- `--dbgpattern='.*'`: Filters debug information with regex.
5050
- Verify `mysqlcmd` path if custom binaries are used: `--mysqlcmd=/usr/local/bin/mysql`.
5151

52+
### 5. MariaDB InnoDB Variable Compatibility
53+
54+
As MariaDB evolves, several InnoDB system variables have been removed or deprecated. `mysqltuner.pl` detects these to avoid legacy configuration overhead.
55+
56+
| Parameter | Removed/Deprecated In | Note/Replacement |
57+
| :--- | :--- | :--- |
58+
| `have_innodb` | Removed 10.0 | Use `SHOW ENGINES` or `I_S.PLUGINS`. |
59+
| `innodb_adaptive_flushing_method` | Removed 10.0 | Replaced by MySQL 5.6 flushing logic. |
60+
| `innodb_checksums` | Removed 10.0 | Use `innodb_checksum_algorithm`. |
61+
| `innodb_stats_sample_pages` | Removed 10.5.0 | Use `innodb_stats_transient_sample_pages`. |
62+
| `innodb_file_format` / `_check` / `_max` | Removed 10.6.0 | Antelope and Barracuda are legacy concepts. |
63+
| `innodb_large_prefix` | Removed 10.6.0 | Always enabled in newer versions. |
64+
| `innodb_locks_unsafe_for_binlog` | Removed 10.6.0 | No longer supported. |
65+
| `innodb_prefix_index_cluster_optimization` | Deprecated 10.10 | Always enabled now. |
66+
67+
### 6. MySQL InnoDB Variable Compatibility
68+
69+
| Parameter | Removed/Deprecated In | Note/Replacement |
70+
| :--- | :--- | :--- |
71+
| `innodb_locks_unsafe_for_binlog` | Removed 8.0 | Use `READ COMMITTED` isolation level instead. |
72+
| `innodb_support_xa` | Removed 8.0 | XA support is now always enabled. |
73+
| `innodb_file_format` family | Removed 8.0 | `Barracuda` is the only supported format. |
74+
| `innodb_large_prefix` | Removed 8.0 | Always enabled for `Barracuda`. |
75+
| `tx_isolation` / `tx_read_only` | Removed 8.0 | Use `transaction_isolation` / `transaction_read_only`. |
76+
| `innodb_undo_logs` | Removed 8.0 | Replaced by `innodb_rollback_segments`. |
77+
| `innodb_undo_tablespaces` | Removed 9.0 | Managed automatically now. |
78+
| `innodb_log_file_size` | Removed 9.0 | Replaced by `innodb_redo_log_capacity`. |
79+
| `innodb_api_...` variables | Removed 8.4 | Memcached-related variables removed. |
80+
5281
## ✅ Verification
5382

5483
- Run `perl mysqltuner.pl --help` to confirm availability of these options.

.agent/workflows/doc-sync.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
---
2-
trigger: explicit_call
2+
trigger: /doc-sync
33
description: Synchronize .agent/README.md with current Rules, Skills, and Workflows
4-
category: tool
4+
category: Documentation
55
---
66

77
# Documentation Synchronization Workflow
88

9-
1. Execute the documentation synchronization script:
9+
1. Execute the documentation synchronization script to update `.agent/README.md`:
1010
// turbo
1111

1212
```bash
1313
python3 build/doc_sync.py
1414
```
1515

16-
1. Review the updated summary in [.agent/README.md](file://.agent/README.md).
16+
1. **Full Documentation Review Checklist**:
17+
- [ ] **READMEs**: Verify `README.md` and translations are up-to-date with new features.
18+
- [ ] **Usage**: Ensure `mysqltuner.pl --help` output matches `CLI_METADATA` in script.
19+
- [ ] **ROADMAP.md**: Move completed items from Phase 2/3 to COMPLETED.
20+
- [ ] **POTENTIAL_ISSUES**: Audit found anomalies and update it if needed.
21+
- [ ] **Script Comments**: Verify internal documentation matches logic changes.
22+
23+
2. **Version Consistency Audit**:
24+
- [ ] `CURRENT_VERSION.txt` matches `$tunerversion` in `mysqltuner.pl`.
25+
- [ ] Script header and POD documentation reflect the current version.
26+
- [ ] `Changelog` contains a section for the current version with correct date.
27+
- [ ] `releases/v[VERSION].md` exists and is synchronized with `Changelog`.
28+
29+
3. Review the updated summary in [.agent/README.md](file://.agent/README.md).

.agent/workflows/git-flow.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ This workflow MUST be orchestrated by the **Release Manager**.
2222
- Commit all pending changes including `Changelog` updates for the current version.
2323

2424
```bash
25+
# Extract content between the first version header and the next one
26+
RELEASE_NOTES=$(awk "/^$CURRENT_VER/,/^([0-9]+\.[0-9]+\.[0-9]+)/ {if (\$0 !~ /^([0-9]+\.[0-9]+\.[0-9]+)/) print}" Changelog | sed '/^$/d')
27+
COMMIT_MSG="feat: release $CURRENT_VER\n\n$RELEASE_NOTES"
2528
git add .
26-
npm run commit # Select 'feat' and enter "release $CURRENT_VER"
29+
echo -e "$COMMIT_MSG" | git commit -F -
2730
```
2831

2932
// turbo

.agent/workflows/hey-agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ category: [governance | tool | skill]
4242
6. **Execution**: Apply changes using `replace_file_content` or `multi_replace`.
4343
7. **Synchronization**: Immediately update `03_execution_rules.md` (constraints) and `04_best_practices.md` if necessary.
4444
8. **Autolearning**: Update `remembers.md` as the session-level memory buffer.
45-
9. **Documentation Sync**: Execute `/doc-sync` to refresh the project's technical summary.
45+
9. **Documentation Sync**: Execute `/doc-sync` to refresh the project's technical summary. Ensure that any release publication (via `/git-flow`) uses all current release notes as the commit message.
4646

4747
## ✅ Verification
4848

.github/workflows/codeql.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL Advanced"
13+
14+
on:
15+
push:
16+
branches: [ "master" ]
17+
pull_request:
18+
branches: [ "master" ]
19+
schedule:
20+
- cron: '43 18 * * 2'
21+
22+
jobs:
23+
analyze:
24+
name: Analyze (${{ matrix.language }})
25+
# Runner size impacts CodeQL analysis time. To learn more, please see:
26+
# - https://gh.io/recommended-hardware-resources-for-running-codeql
27+
# - https://gh.io/supported-runners-and-hardware-resources
28+
# - https://gh.io/using-larger-runners (GitHub.com only)
29+
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
30+
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
31+
permissions:
32+
# required for all workflows
33+
security-events: write
34+
35+
# required to fetch internal or private CodeQL packs
36+
packages: read
37+
38+
# only required for workflows in private repositories
39+
actions: read
40+
contents: read
41+
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
include:
46+
- language: actions
47+
build-mode: none
48+
- language: javascript-typescript
49+
build-mode: none
50+
- language: python
51+
build-mode: none
52+
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
53+
# Use `c-cpp` to analyze code written in C, C++ or both
54+
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
55+
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
56+
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
57+
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
58+
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
59+
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
60+
steps:
61+
- name: Checkout repository
62+
uses: actions/checkout@v4
63+
64+
# Add any setup steps before running the `github/codeql-action/init` action.
65+
# This includes steps like installing compilers or runtimes (`actions/setup-node`
66+
# or others). This is typically only required for manual builds.
67+
# - name: Setup runtime (example)
68+
# uses: actions/setup-example@v1
69+
70+
# Initializes the CodeQL tools for scanning.
71+
- name: Initialize CodeQL
72+
uses: github/codeql-action/init@v4
73+
with:
74+
languages: ${{ matrix.language }}
75+
build-mode: ${{ matrix.build-mode }}
76+
# If you wish to specify custom queries, you can do so here or in a config file.
77+
# By default, queries listed here will override any specified in a config file.
78+
# Prefix the list here with "+" to use these queries and those in the config file.
79+
80+
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
81+
# queries: security-extended,security-and-quality
82+
83+
# If the analyze step fails for one of the languages you are analyzing with
84+
# "We were unable to automatically build your code", modify the matrix above
85+
# to set the build mode to "manual" for that language. Then modify this step
86+
# to build your code.
87+
# ℹ️ Command-line programs to run using the OS shell.
88+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
89+
- name: Run manual build steps
90+
if: matrix.build-mode == 'manual'
91+
shell: bash
92+
run: |
93+
echo 'If you are using a "manual" build mode for one or more of the' \
94+
'languages you are analyzing, replace this with the commands to build' \
95+
'your code, for example:'
96+
echo ' make bootstrap'
97+
echo ' make release'
98+
exit 1
99+
100+
- name: Perform CodeQL Analysis
101+
uses: github/codeql-action/analyze@v4
102+
with:
103+
category: "/language:${{matrix.language}}"

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,12 @@ mysqltuner.pl.bak
5050
0/**
5151
experimental_run.log
5252
experimental_run_v2.log
53+
test_dump_84/**
54+
test_dump/**
55+
test_output.log
56+
tested_subs.txt
57+
untested_subs.txt
58+
execution_test.log
59+
all_subs.txt
60+
execution_84.log
61+
test_dump_84/ifs_COLLATION_CHARACTER_SET_APPLICABILITY.csv

CURRENT_VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.8.38
1+
2.8.40

Changelog

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,43 @@
1-
2.8.38 2026-02-14
1+
# MySQLTuner Changelog
2+
3+
2.8.40 2026-02-15
24

5+
- feat: overhaul InnoDB Redo Log Capacity logic to consider RAM size and workload writes.
6+
- feat: add support for `innodb_dedicated_server` detection in Redo Log diagnostics.
7+
- feat: implement multi-cloud autodiscovery for AWS RDS/Aurora, GCP Cloud SQL, Azure (Flexible/Managed), and DigitalOcean.
8+
- feat: add granular SSL/TLS security checks (certificate expiration, remote user SSL enforcement).
9+
- feat: add infrastructure-aware tuning (SSD/NVMe vs HDD detection and architecture reporting).
10+
- test: add comprehensive unit test suite for core logic coverage (InnoDB, MyISAM, Query Cache, Stats).
11+
- test: add dedicated unit test for cloud discovery logic (tests/cloud_discovery.t).
12+
- refactor: replace massive system calls (awk, grep, uname, getconf, sysctl) with native Core Perl functions for Linux.
13+
- fix: resolve MySQL 9.x compatibility issues and SQL execution regressions (RC 256).
14+
- chore: add Daniel Lewart(@lewart3) to contributors list.
15+
- chore: remediate Arbitrary File Write vulnerability in tmp (GHSA-52f5-9888-hmc6) by forcing update to 0.2.4+ via npm overrides.
16+
- chore: bump version to 2.8.40.
17+
18+
2.8.39 2026-02-15
19+
20+
- feat: implement authentication plugin security checks to detect insecure or deprecated plugins like mysql_native_password and sha256_password.
21+
- feat: add MySQL 9.x readiness diagnostics for eliminated authentication methods.
22+
- feat: update MariaDB recommendations to suggest ed25519 and unix_socket for enhanced security.
23+
- test: add integrated test suite for authentication plugin auditing (tests/auth_plugin_checks.t).
24+
- feat: detect removed InnoDB variables in MariaDB and MySQL and provide actionable recommendations.
25+
- test: add regression test for MariaDB and MySQL removed InnoDB variables (tests/removed_innodb_vars.t).
326
- fix: prevent creation of unauthorized directory "0" when --dumpdir is not explicitly set or set to 0 (Issue #20).
427
- fix: robust, version-agnostic detection of password column in mysql.user via schema inspection (Issue #22).
28+
- fix: refactor mysql_setup to correctly handle --defaults-file and --defaults-extra-file with credentials (Issue #605).
29+
- fix: resolve MariaDB socket authentication regression and restore automatic credential discovery (Issue #875).
30+
- fix: remediate Prototype Pollution vulnerability in lodash (CVE-2021-23341) by forcing update to 4.17.23.
531
- refactor: replace massive system calls (awk, grep, uname, getconf, sysctl) with native Core Perl functions for Linux.
632
- feat: implement native parsing for /proc/cpuinfo, /proc/meminfo, /proc/sys/vm/swappiness and /etc/resolv.conf.
33+
- feat: add support for --login-path in CLI metadata and mysql_setup for enhanced authentication flexibility.
734
- refactor: optimize CPU core count, logical CPU detection, and OS memory setup for local environments.
835
- refactor: use POSIX::uname and POSIX::sysconf for standardized system and architecture reporting.
9-
- fix: resolve MariaDB socket authentication regression and restore automatic credential discovery (Issue #875).
10-
- fix: remediate Prototype Pollution vulnerability in lodash (CVE-2021-23341) by forcing update to 4.17.23.
1136
- test: add reproduction test for authentication discovery chain (tests/issue_875_regression.t).
1237
- test: add comprehensive test suite for password column detection (tests/repro_issue_22.t).
38+
- test: add reproduction test for credentials and defaults files handling (tests/repro_issue_605.t).
39+
- feat: add automatic detection of systemd journal and syslog fallbacks for MariaDB/MySQL logs (Issue #440).
40+
- test: add verification suite for syslog and systemd journal detection (tests/syslog_journal_detection.t).
1341
- chore: bump version to 2.8.38.
1442

1543
2.8.36 2026-02-13
@@ -22,9 +50,12 @@
2250
- test: add comprehensive test suite for password column detection (tests/repro_issue_22.t).
2351
- test: add reproduction test for Performance Schema disabled diagnostic (tests/repro_pfs_disabled.t).
2452
- fix: prevent creation of directory "0" when --dumpdir is not specified or set to 0 (Issue #20).
25-
- docs: fix broken endoflife.date links in README files (Issue #877).
53+
- docs: fix broken endoflife.date links in README files (Issue #877, credit @FabioPedretti).
54+
- docs: fix broken endoflife.date links in README files (Issue #877, credit @FabioPedretti).
2655
- test: add reproduction test for Performance Schema disabled scenario (repro_pfs_disabled.t).
2756
- ci: fix Docker API mismatch in GitHub Actions by migrating to native services.
57+
- feat: make Storage Engine Statistics output deterministic by @lewart3 (Issue #26).
58+
- feat: make Storage Engine Statistics output deterministic by @lewart3 (Issue #26).
2859

2960
2.8.35 2026-02-02
3061

@@ -38,8 +69,6 @@
3869
- test: add regression test `tests/issue_770.t` to verify `innodb_log_file_size` recommendation precision.
3970
- test: add regression test `tests/issue_783.t` to verify `innodb_log_buffer_size` recommendation on idle servers.
4071

41-
# MySQLTuner Changelog
42-
4372
2.8.33 2026-01-31
4473

4574
- fix: improved cPanel/Flex detection and refined `skip-name-resolve` recommendation (issue #863).

0 commit comments

Comments
 (0)