Analyzer
-
Fix CTU parse-on-demand: normalize relative
-includepath to absolute (#5097)
Fixes #5093 — relative-includepaths in CTU parse-on-demand mode are now correctly normalized to absolute paths. -
Disallow prefix matching for command line arguments (#5164)
The--z3flag was removed fromCodeChecker analyze, but--z3-refutationremains valid. Because argparse allowed prefix matching,--z3was silently falling back to--z3-refutation. Prefix matching is now disabled to prevent such ambiguities.
Database / Backend
-
Pin SQLAlchemy to version 2.0
SQLAlchemy 2.1 defaults topsycopg3, which CodeChecker does not yet support. SQLAlchemy is now pinned to2.0.xto maintainpsycopg2compatibility. PostgreSQL in CI is also pinned to version 18 for deterministic test results. -
Fix
declarative_baseimport for SQLAlchemy 2.0 compatibility
run_db_model.pywas importingdeclarative_basefrom the deprecatedsqlalchemy.ext.declarativepath. It now imports fromsqlalchemy.orm, matchingconfig_db_model.pyand eliminatingMovedIn20Warningon module load. Fixes #5116. -
Disable PostgreSQL timeouts during schema migration and garbage collection
Long-running queries during garbage collection and schema migration could be aborted by server-sidestatement_timeoutoridle_in_transaction_session_timeoutsettings. These timeouts are now disabled for the duration of those operations. -
Remove redundant code and set database connection timeout
- Connection timeout limits are now specified in
create_engine(). - A redundant
psql-based connectivity check inPostgreSQLServer.connect()was removed; the equivalent check already exists incheck_schema(). - Dead code cleaned up: unused
check_envandinteractiveparameters removed throughout. - Exception logging improved — only the relevant exception and connection string are printed instead of full internal SQLAlchemy stack traces.
- The Docker image no longer installs
postgresql-client(it was only needed for the removedpsqlcall).
- Connection timeout limits are now specified in
Web / Docker
- Support TLS in the web container health check
The Docker container health check now works correctly when TLS is enabled.
GUI Improvements
-
Rework error display
Errors are now displayed in a modern snackbar-style notification instead of the previous UI. -
Make report step messages selectable (#5141)
- A copy button has been added to report step messages for quick clipboard access.
- Text selection is now enabled inside report step message boxes.
-
Fix git blame not showing on the first line
The blame gutter used!line?.fromto skip empty lines. Because the first line's offset is0,!0evaluated totrueand its blame marker was dropped. The check is nowline?.from == null, so offset0is treated as a valid line. -
Fix reports file tree view filtering for relative paths
Filtering in the reports view failed for paths stored as relative paths. Both the file path filter and the file tree view mode now handle relative paths correctly.