Skip to content

Commit 2ce9286

Browse files
committed
Merge branch 'develop' of https://github.com/makr-code/ThemisDB into tmp/push-fix3
2 parents b3e5298 + 79fcc04 commit 2ce9286

196 files changed

Lines changed: 15343 additions & 844 deletions

File tree

Some content is hidden

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

‎.github/ISSUE_TEMPLATE/docs_audit.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ Describe what the documentation should say or cover after fixing this issue.
6767
- [ ] Issue is assigned to the correct docs milestone
6868
- [ ] Release-gate evidence is linked when the SOT domain is `build-test` or `release-versioning`
6969
- [ ] Private-plugin findings do not leak confidential repository paths, URLs, or implementation details into public docs
70+
- [ ] If AI coding context is affected: `AI_WIKI_INTEGRATION_PLAYBOOK.md` and `ai_context/developer_llm_wiki/*` references are reviewed for sync and drift
7071

7172
## Additional Context
7273

‎.github/PR_LABELING_GOVERNANCE.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ Labels indicating release or quality status.
6969
| `release_critical` | Changes to release-critical modules (Wave A focus areas) |
7070
| `ai-generated` | Changes generated by AI/Copilot (ai_working/) |
7171
| `breaking-change` | (AI-detected) Contains breaking changes |
72+
| `quality/doxygen-failed` | Doxygen governance gate failed on changed public APIs |
73+
| `quality/doxygen-warning` | Doxygen gate warning or waived Tier-1 coverage shortfall |
74+
| `governance/doxygen-waiver` | Approved temporary waiver marker for Tier-1 Doxygen coverage escalation |
7275
| `severity:critical` | (AI-detected) Critical severity impact |
7376
| `severity:high` | (AI-detected) High severity impact |
7477
| `severity:medium` | (AI-detected) Medium severity impact |
@@ -156,6 +159,15 @@ Detected classifications are converted to labels and merged with existing labels
156159
- **Gracefully degrades** if AI inference fails or returns invalid JSON
157160
- Safe to disable by removing the job
158161

162+
### Workflow-driven Doxygen gate labeling
163+
164+
- Triggered by `.github/workflows/gate-pr-doxygen-governance.yml`
165+
- Waiver approvals for `T1-DOXYGEN-COVERAGE` are issued by `.github/workflows/compliance-governance-gates.yml` from PR comments and then re-validated by the PR gate
166+
- Uses `.github/actions/status-flags-and-issues` for idempotent PR comments and label state
167+
- `quality/doxygen-failed` is the canonical blocker label for missing Doxygen structure, warning-log failures, or missing XML generation in scoped code changes
168+
- `quality/doxygen-warning` is used for advisory `@throws`/`@tparam` findings, non-blocking observation, and waived coverage shortfalls
169+
- `governance/doxygen-waiver` is not path-based; it is a workflow-synchronized governance marker that reflects an active PR comment approval for `T1-DOXYGEN-COVERAGE`
170+
159171
## Maintenance and Updates
160172

161173
### When to Update Labels

‎.github/WORKFLOW_GUIDELINES.md‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Die kanonische Liste aktiver Workflows steht in `.github/WORKFLOW_REGISTRY.md`.
66
Workflows unter `.github/no_workflows/` gelten als bewusst deaktivierte Quarantaene und
77
duerfen nicht stillschweigend reaktiviert werden.
88

9-
## Aktive Workflows (39)
9+
## Aktive Workflows (40)
1010
Die aktuelle kanonische Liste steht in `.github/WORKFLOW_REGISTRY.md`; der alte 21er-Stand war veraltet und wird hier durch den aktuellen, im Repository geltenden Zustand ersetzt.
1111

1212
Kernliste der aktiven Workflows:
@@ -20,6 +20,7 @@ Kernliste der aktiven Workflows:
2020
- `.github/workflows/build-content-regression.yml`
2121
- `.github/workflows/build-llm-inference.yml`
2222
- `.github/workflows/gate-pr-core.yml`
23+
- `.github/workflows/gate-pr-doxygen-governance.yml`
2324
- `.github/workflows/release-build-matrix.yml`
2425
- `.github/workflows/release-mainline.yml`
2526
- `.github/workflows/build-widget.yml`
@@ -101,7 +102,7 @@ Archiviert in `.github/no_workflows/` (im Zuge Workflow Framework Refactoring):
101102
- Publish-Workflows nur ueber Tag- oder Environment-Gates freigeben.
102103
- Third-party Actions auf immutable Commit-SHAs pinnen (SHA-only, kein `@vX.Y.Z` Tag als einzige Referenz).
103104
Beispiel: `uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2`
104-
Enforcement: `actionlint` + SHA-Pin-Prüfung in `quality-static-analysis.yml`.
105+
Enforcement: `gate-pr-core.yml` Preflight-Checks + lokales `actionlint` via `scripts/test-github-actions-local.ps1`.
105106
- Compliance-Gates fuer Dependencies muessen branch- und pfadbegrenzt sein und ein downloadbares Audit-Artefakt erzeugen.
106107
- OIDC-basierte Authentifizierung (kein long-lived PAT) fuer ghcr.io und neue Registry-Ziele.
107108

@@ -250,8 +251,11 @@ Damit bleiben Ergebnisse reproduzierbar und lassen sich nach dem Lauf mit
250251

251252
## Doxygen Coverage Threshold (Maintainer)
252253
- Der Doxygen-Coverage-Gate liest den Schwellwert zentral aus `.github/ci-scope-config.yaml` unter `quality_gates.docs_coverage_threshold`.
253-
- Standardwert ist `90`.
254-
- Empfohlene stufenweise Anhebung: `90 -> 92 -> 95`.
254+
- Kanonische CI-Konfiguration ist `Doxyfile.audit`; der PR-Gate-Workflow verwendet eine daraus abgeleitete, modul-scoped Laufkonfiguration.
255+
- Aktueller Standardwert ist `95`.
256+
- Empfohlene stufenweise Anhebung ab diesem Stand: `95 -> 97 -> 99`.
257+
- Strukturfehler (`@brief`, `@param`, `@return`, fehlender Doxygen-Block, Doxygen-Warnungen, fehlendes XML`) sind im PR-Gate blocking; Coverage < Threshold ist auf `develop` beobachtbar und auf Release-/Phase-6-Scope eskalationspflichtig.
258+
- Ein genehmigter Tier-1-Override fuer `T1-DOXYGEN-COVERAGE` muss ueber `.github/workflows/compliance-governance-gates.yml` per `/approve-with-waiver ...` kommentarbasiert freigegeben werden; `gate-pr-doxygen-governance.yml` wertet dazu den kanonischen PR-Kommentar-Marker aus und synchronisiert das Label `governance/doxygen-waiver`.
255259
- Nach jeder Anhebung zuerst mehrere PR-Laeufe beobachten und nur bei stabiler Signalqualitaet weiter erhoehen.
256260
- Bei hoher False-Positive-Rate den Schwellwert voruebergehend zuruecksetzen und Doku-Luecken gezielt abbauen.
257261

‎.github/WORKFLOW_REGISTRY.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ Quarantaene, nicht einen inoffiziellen Reservepool fuer schnelle Reaktivierung.
1919
### Fokus-Workflows
2020
- `.github/workflows/gate-pr-core.yml`
2121
— Fast PR-Gate-Layer inkl. `release-critical-tests` (mandatory), Boundary- und Policy-Gates
22+
- `.github/workflows/gate-pr-doxygen-governance.yml`
23+
— PR-Gate fuer geaenderten C/C++-Sourcecode: GS3-Doxygen-Strukturpruefung, Doxygen-Audit-Warnungen, XML-Generierbarkeit, Coverage-/Waiver-Eskalation
2224
- `.github/workflows/build-mainline.yml`
2325
— Multi-OS Build/Test-Matrix inkl. optionaler Sanitizer-Lane per `workflow_dispatch`
2426
- `.github/workflows/release-mainline.yml`
@@ -37,8 +39,6 @@ Quarantaene, nicht einen inoffiziellen Reservepool fuer schnelle Reaktivierung.
3739
— SBOM-/Signatur-/Release-Compliance-Pruefungen
3840
- `.github/workflows/security-codeql.yml`
3941
— CodeQL Analyse-Workflow
40-
- `.github/workflows/quality-static-analysis.yml`
41-
— Statische Qualitaetspruefungen und Artefaktberichte
4242
- `.github/workflows/compliance-governance-gates.yml`
4343
— Governance- und Release-Policy-Gates
4444
- `.github/workflows/maintenance-docs.yml`

‎.github/actions/setup-cpp-build/action.yml‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ runs:
3636
- name: Pre-configure sccache environment
3737
shell: bash
3838
run: |
39-
echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV"
39+
# Honor caller overrides (for example SCCACHE_GHA_ENABLED=false in
40+
# release-critical gating jobs). Default to GHA backend only when the
41+
# caller did not set an explicit value.
42+
if [ -z "${SCCACHE_GHA_ENABLED:-}" ]; then
43+
echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV"
44+
fi
4045
# Ignore transient cache I/O errors so sccache falls back to direct
4146
# compilation instead of aborting with exit code 2.
4247
echo "SCCACHE_IGNORE_SERVER_IO_ERROR=1" >> "$GITHUB_ENV"

‎.github/actions/status-flags-and-issues/action.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ runs:
139139
'status/build-pending': '0075CA',
140140
'scanner/gs3': '1D76DB',
141141
'scanner/runtime': '1D76DB',
142+
'quality/doxygen-failed': 'B60205',
143+
'quality/doxygen-warning': 'FBCA04',
144+
'governance/doxygen-waiver': 'FBCA04',
142145
security: 'B60205',
143146
'security/critical': 'B60205',
144147
};

‎.github/branch-protection-rules.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
"test-integration": "Integration test suite",
155155
"test-performance": "Performance/benchmark tests",
156156
"static-analysis": "Static analysis (clang-tidy, cppcheck)",
157+
"Doxygen Governance": "Doxygen source-governance gate for changed public C/C++ APIs",
157158
"security-scan": "CodeQL security scanning",
158159
"validate-ai-guardrails": "AI-Guardrails validation workflow",
159160
"validate-roadmap": "Roadmap structure validation"
@@ -165,6 +166,7 @@
165166
"Review protection rules quarterly for effectiveness",
166167
"Commit signing (GPG) is required for main and release/* branches",
167168
"Roadmap validation (validate-roadmap) is required before merge on all protected branches",
169+
"Add the 'Doxygen Governance' required check to protected branches that enforce source-governance before merge",
168170
"Code owner review is required for main and release/* branches",
169171
"Restricted push access on main and release/* to @makr-code/maintainers team"
170172
]

‎.github/ci-scope-config.yaml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,11 @@ workflow_scope_map:
155155
ci-benchmarks: [has_llm_changes, has_acceleration_changes, has_gpu_changes]
156156
copilot-ollama-router-ci: [has_code_changes]
157157
copilot-regression-guard: [has_code_changes, has_config_changes]
158-
quality-static-analysis: [has_code_changes, has_config_changes]
158+
gate-pr-doxygen-governance: [has_code_changes, has_config_changes]
159159

160160
# ── Quality gate tuning ─────────────────────────────────────────────────────
161161
# Maintainer knob for Doxygen XML coverage threshold used by
162-
# .github/workflows/quality-static-analysis.yml (doxygen-coverage job).
162+
# .github/workflows/gate-pr-doxygen-governance.yml.
163163
# Increase gradually (recommended): 95 -> 97 -> 99.
164164
# Raised to 95 after @brief coverage improvement (Classes: 99.9%, 2026-08-12).
165165
quality_gates:

‎.github/codeql/codeql-config.yml‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# CodeQL Advanced Configuration for ThemisDB
2+
#
3+
# Reduces database build time and size by excluding vendored/third-party paths
4+
# and generated artefacts. Only production source under src/, include/,
5+
# tests/, benchmarks/, and tools/ is analysed.
6+
#
7+
# Reference: https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning
8+
9+
name: "ThemisDB CodeQL Config"
10+
11+
# ── Query suites ──────────────────────────────────────────────────────────────
12+
# The active query suite is selected by the workflow via the `queries:` input
13+
# on the `github/codeql-action/analyze` step:
14+
# PR / push → security-extended (security-relevant rules, no quality gates)
15+
# scheduled → security-and-quality (full suite, runs weekly off-hours)
16+
17+
# ── Path exclusions ───────────────────────────────────────────────────────────
18+
# Excluded paths are NOT compiled into the CodeQL database, which reduces
19+
# database size and analysis time significantly for this repo.
20+
paths-ignore:
21+
# Vendored / third-party submodules
22+
- vcpkg
23+
- llama.cpp
24+
- internal
25+
26+
# Generated build artefacts
27+
- build
28+
- build-*
29+
- out
30+
31+
# Test-only tooling and helper scripts (not production surface)
32+
- tools/tests
33+
- scripts
34+
35+
# Documentation and configuration files only
36+
- docs
37+
- ai_context
38+
- ai_working
39+
- audit
40+
- security
41+
42+
# Package / distribution staging
43+
- dist
44+
- packages

‎.github/copilot-instructions.md‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,47 @@ Pflichtregeln:
1313
3. Änderungen, die Architektur, Betrieb, Prozesse oder Governance betreffen, müssen die zugehörigen Wiki-Inhalte synchron halten.
1414
4. Fehlende Wiki-Inhalte sind als Lücke zu melden und in den Arbeitsartefakten/PR-Hinweisen zu markieren statt stillschweigend zu ignorieren.
1515

16+
## 0.1) Developer LLM Wiki fuer GitHub Copilot auf GitHub (MUST)
17+
18+
Wenn GitHub Copilot als Coding Agent auf GitHub implementiert, reviewt oder refactort, muss es das Developer LLM Wiki aktiv als Vibe-Coding-Kontext nutzen.
19+
20+
Pflichtablauf:
21+
22+
1. Zuerst `AI_WIKI_INTEGRATION_PLAYBOOK.md` lesen.
23+
2. Vor Codeaenderungen die relevanten Developer-Wiki-Artefakte aus `ai_context/developer_llm_wiki/` konsultieren:
24+
- `INDEX.md`
25+
- `MODULES_AND_APIS.md`
26+
- `BUILD_TEST_CI_AND_OPERATIONS.md`
27+
- `GOVERNANCE_AND_ROADMAP.md`
28+
3. `ai_context/developer_llm_wiki/WIKI_STATUS.json` als Frische-/Health-Signal pruefen (`generated_at`, `source_count`, Delta-Status).
29+
4. Wiki-Kontext nach Task-Typ priorisieren:
30+
- API-/Modularbeit → `MODULES_AND_APIS.md`
31+
- Build/CI/Test → `BUILD_TEST_CI_AND_OPERATIONS.md`
32+
- Governance/Roadmap/Release → `GOVERNANCE_AND_ROADMAP.md`
33+
- C/C++-Implementierung → `MODULES_AND_APIS.md` plus `memory_management_policy.md`, `OOP_AND_SOC_PRINCIPLES.md`, `FUNCTION_CLASSIFICATION.md`
34+
- allgemeiner Einstieg/Link-Hub → `INDEX.md`
35+
5. Bei Konflikten gilt: Root-SOT und Modulquellen vor kompilierter Wiki-Synthese.
36+
6. Wenn Wiki-Artefakte fehlen, stale wirken oder der Aufgabe widersprechen, diese Luecke explizit nennen statt das Wiki still zu ignorieren.
37+
38+
Task-spezifische Mindestregeln:
39+
40+
- API-/Modularbeit: zuerst `ai_context/developer_llm_wiki/MODULES_AND_APIS.md`, danach relevante `ai_context/api_contracts/*.md` und modulnahe `src/<module>/*.md`.
41+
- Build/CI/Test: zuerst `ai_context/developer_llm_wiki/BUILD_TEST_CI_AND_OPERATIONS.md`; bei Fehlern zusaetzlich immer konkrete GitHub-Actions-Logs und betroffene Workflow-Dateien pruefen.
42+
- Governance/Roadmap/Release: zuerst `ai_context/developer_llm_wiki/GOVERNANCE_AND_ROADMAP.md`, danach Root-SOT-Dateien (`ROADMAP.md`, `FUTURE_ENHANCEMENTS.md`, `RELEASE_STRATEGY.md`, `BRANCHING_STRATEGY.md`, `VERSIONING.md`).
43+
- C/C++-Arbeit: zuerst `ai_context/developer_llm_wiki/MODULES_AND_APIS.md`, danach `ai_context/memory_management_policy.md`, `ai_context/OOP_AND_SOC_PRINCIPLES.md`, `ai_context/FUNCTION_CLASSIFICATION.md` sowie die einschlaegigen `.github/instructions/*cpp*` Regeln.
44+
- Public API / Header-Vertraege: zusaetzlich zuerst relevante `ai_context/api_contracts/*.md` und Doxygen-/Thread-Safety-/Ownership-Pflichten pruefen.
45+
- Internal Core / Implementierungslogik: Ownership, RAII, `detail::`-Grenzen und unbeabsichtigte API-Flaechenerweiterungen gegen `memory_management_policy.md` und `OOP_AND_SOC_PRINCIPLES.md` pruefen.
46+
- Concurrency / Performance: Locking, Atomics, Hot-Path-Klassifikation, Timeout/Cancellation und Benchmark-Bezug gegen `FUNCTION_CLASSIFICATION.md` und C++-Best-Practice-Regeln pruefen.
47+
- Plugin-Boundaries / Extensibility: Adapter-/Interface-Grenzen sowie Public-vs-Private-Grenzen gegen `OOP_AND_SOC_PRINCIPLES.md` und `GOVERNANCE_AND_ROADMAP.md` pruefen.
48+
- Einordnungshilfe:
49+
- `include/**` oder externe Vertragsaenderung → Public API
50+
- `src/**`, interne Header oder `detail::` → Internal Core
51+
- Locking/Atomics/Latenz/Benchmarks/Timeouts → Concurrency / Performance
52+
- Plugin-Interfaces/Adapter/Edition-Grenzen → Plugin-Boundaries / Extensibility
53+
- Wenn mehrere C++-Subtypen zugleich betroffen sind, gelten alle relevanten Wiki-/Governance-Pflichten kumulativ.
54+
55+
Details und Dateizwecke: [AI_WIKI_CONTEXT.md](copilot/AI_WIKI_CONTEXT.md)
56+
1657
## 1) Ziel
1758

1859
Roadmap-Einträge müssen so konkret sein, dass Copilot **produktiven Sourcecode** statt Stub/Rumpf erzeugen kann.

0 commit comments

Comments
 (0)