Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
73a8351
added web solution
Dec 5, 2025
f1cb3b6
upgraded deps
Dec 5, 2025
fb6fbe4
Update branch name from 'dev' to 'develop'
Kataglyphis Dec 6, 2025
ac17627
Update dart_on_web_linux.yml
Kataglyphis Dec 6, 2025
a83713e
added stub
Kataglyphis Dec 6, 2025
9f0c7e2
added stub
Kataglyphis Dec 6, 2025
d7fe1f1
added stub
Kataglyphis Dec 6, 2025
c3bdfcc
added doc
Kataglyphis Dec 7, 2025
b055834
android
Dec 8, 2025
d4dc629
Merge branch 'develop' of github.com:Kataglyphis/Kataglyphis-Inferenc…
Dec 8, 2025
915894d
added roots for android support
Dec 8, 2025
1aca3f5
added roots for android support
Dec 8, 2025
1e2b48e
added containerhub
Kataglyphis Dec 8, 2025
8fcf7bb
Merge branch 'develop' of github.com:Kataglyphis/Kataglyphis-Inferenc…
Kataglyphis Dec 8, 2025
07656c4
added badge
Dec 8, 2025
7f18215
added native java plugin
Dec 8, 2025
f708a87
upgrade deps
Dec 8, 2025
d13e95b
added android support
Dec 10, 2025
9473351
added android solution
Dec 11, 2025
5ab1a9a
fixes
Dec 11, 2025
7cb1771
upgraded
Dec 12, 2025
34dad4c
fix
Dec 14, 2025
1161c05
merge
Dec 15, 2025
7ec50fa
Merge branch 'develop' of github.com:Kataglyphis/Kataglyphis-Inferenc…
Dec 15, 2025
c774497
android upgrade
Dec 15, 2025
15fbc7c
fix android
Dec 15, 2025
f6e72d6
added rust impl to repo
Dec 16, 2025
ea9af73
Update Rust crate and DLL names in build script[build-win]
Kataglyphis Dec 17, 2025
6bdb16b
Add swapfile creation step to CI workflow
Kataglyphis Dec 17, 2025
f933e92
android upgrade
Dec 17, 2025
bc21060
upgrade
Dec 17, 2025
d594c67
Update path for copying Flutter APK bundle
Kataglyphis Dec 18, 2025
0e3578e
create icon
Dec 19, 2025
205dffe
upgrade
Dec 19, 2025
d1cb5a6
fix
Dec 19, 2025
782c955
fix of android app
Dec 20, 2025
4a099ae
update deps
Jan 8, 2026
cd2aefb
removed deleted font.css
Jan 8, 2026
d73150e
pipeline fix
Jan 10, 2026
09b491d
android fix
Jan 10, 2026
a763676
fix
Jan 10, 2026
f82e8eb
fix
Jan 10, 2026
35f5ba5
fix
Jan 10, 2026
951ad6a
fix
Jan 10, 2026
0d67093
fix
Jan 10, 2026
1244373
fix
Jan 10, 2026
f3aa56b
fix
Jan 10, 2026
58b8bb2
fix
Jan 10, 2026
323e627
fix
Jan 10, 2026
80880dc
fix
Jan 10, 2026
96b1087
fix
Jan 10, 2026
fd877a8
deps upgrde
Jan 16, 2026
a08ece3
upgrade
Jan 26, 2026
3bd1cff
fix
Jan 26, 2026
7bcf7ce
fix
Jan 27, 2026
690416e
fix
Jan 27, 2026
0aba7c9
fix
Kataglyphis Jan 28, 2026
f3083f4
upgrade
Jan 28, 2026
03fa90d
upgrade
Jan 28, 2026
0f819d7
potential fix
Jan 29, 2026
14acd6d
fix
Jan 29, 2026
141133c
fix
Jan 29, 2026
6fd2a28
Add debug statements for Flutter path verification
Kataglyphis Jan 29, 2026
dfa840e
Refactor Flutter build verification in CI workflow
Kataglyphis Jan 30, 2026
1a2acae
Enhance Flutter setup with permissions and ownership fixes
Kataglyphis Jan 30, 2026
f7ba51a
Update dart_on_native_linux.yml
Kataglyphis Jan 30, 2026
9ef7de8
updatwe deps
Jan 30, 2026
0560430
fix
Jan 30, 2026
061969f
fix
Jan 30, 2026
a593e4d
update
Jan 30, 2026
47e9ea3
fix
Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 26 additions & 1 deletion .codacy/cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,20 @@ get_latest_version() {
echo "$version"
}

get_latest_cached_version() {
if [ -d "$CODACY_CLI_V2_TMP_FOLDER" ]; then
# Pick the highest version folder already present on disk.
# This is used as a fallback when the GitHub API is unavailable and the cache is populated.
local cached
cached=$(ls -1 "$CODACY_CLI_V2_TMP_FOLDER" 2>/dev/null | grep -v '^version\.yaml$' | sort -V | tail -n 1)
if [ -n "$cached" ]; then
echo "$cached"
return 0
fi
fi
return 1
}

handle_rate_limit() {
local response="$1"
if echo "$response" | grep -q "API rate limit exceeded"; then
Expand Down Expand Up @@ -123,7 +137,18 @@ fi
if [ -n "$CODACY_CLI_V2_VERSION" ]; then
version="$CODACY_CLI_V2_VERSION"
else
version=$(get_version_from_yaml)
version=$(get_version_from_yaml || true)
if [ -z "$version" ]; then
# version.yaml can be left with an empty version when the GitHub API call fails.
# Fall back to any already cached version first; if none exists, fetch latest.
version=$(get_latest_cached_version || true)
if [ -z "$version" ]; then
echo "ℹ️ Fetching latest version..."
version=$(get_latest_version)
fi
mkdir -p "$CODACY_CLI_V2_TMP_FOLDER"
echo "version: \"$version\"" > "$version_file"
fi
fi


Expand Down
15 changes: 2 additions & 13 deletions .codacy/codacy.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,4 @@
runtimes:
- dart@3.7.2
- go@1.22.3
- java@17.0.10
- node@22.2.0
- python@3.11.11
tools:
- dartanalyzer@3.7.2
- eslint@8.57.0
- lizard@1.17.31
- pmd@7.11.0
- pylint@3.3.6
- revive@1.7.0
- semgrep@1.78.0
- trivy@0.66.0
- semgrep@1.78.0
7.2
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.sh text eol=lf
*.bash text eol=lf
182 changes: 182 additions & 0 deletions .github/github_copilot_instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# GitHub Copilot Instructions

> Datei: `.github/copilot-instructions.md`

## Zweck
Diese Datei gibt GitHub Copilot (inkl. Copilot Chat) repository‑weite Hinweise, wie Vorschläge, Code‑Snippets und Antworten formuliert werden sollen. Sie ist auf ein Multi‑Language‑Projekt ausgelegt: **C/C++**, **Rust**, **Dart/Flutter** (plus Hinweise zu `uv`‑basierten I/O‑Bindings), sowie generelle Tools wie **ruff**. Ziel ist konsistente Code‑Qualität, starke Typisierung und sichere Vorschläge.

Hinweis: In diesem Dokument meint „**uv**“ in zwei Kontexten unterschiedliche Dinge:
- **Python `uv`** = Package Manager/Runner.
- **libuv** = native I/O‑Library (siehe Abschnitt zu libuv‑Bindings).

---

## Kurze Zusammenfassung / About
Dieses Repository enthält native Komponenten (C/C++), Rust‑Bibliotheken, und eine Flutter‑UI (Dart). Der Fokus liegt auf Performance, Cross‑Language Interop, deterministischem Verhalten und starker Typisierung.

---

## Repository‑Scope
- **Behandeln mit Vorrang:** `src/`, `lib/`, `rust/`, `flutter/`, `native/`, `include/`, `tests/`.
- **Ignorieren / nur mit Vorsicht ändern:** `third_party/`, `vendor/`, `build/`, `artifacts/`.
- **CI/Infra:** Vorschläge für CI (z. B. GitHub Actions) nur wenn klarer Nutzen erkennbar; keine ungeprüften Änderungen an Workflows ohne Review.

---

## Personality / Ton
- Sprache: Deutsch (bei technischen Kommentaren kurze englische Code‑Begriffe ok).
- Ton: Präzise, technisch, knapp. 1–3 Sätze Erklärung plus minimaler Beispielcode, wenn nötig.
- Umfang: Bei trivialen Änderungen kurz; bei Architektur/Interop ausführlicher (aber nicht ausschweifend).

---

## Starke Typisierung (allgemein)
- Priorisiere klar typisierte Lösungen:
- **C/C++:** explizite Typen, keine zu weiten `auto`‑Verwendungen an API‑Borders.
- **Rust:** Typinferenz nutzen, aber Signaturen und `Result`/`Option`-Fehlerpfade explizit behandeln.
- **Dart:** Null‑Safety strikt beachten, Typannotationen für öffentliche API‑Signaturen.
- Copilot soll Typannotation vorschlagen, falls weggelassen.

### Type‑Safety‑Policy (maximal)
- Öffentliche APIs (inkl. FFI‑Grenzen) müssen vollständig typisiert sein; keine „untyped“ Escape‑Hatches (`void*`, `dynamic`, „Any“) ohne Begründung.
- Fehlerpfade müssen typisiert sein (z. B. `Result`/`Option`, `std::optional`/Fehlercode, Dart Exceptions nur wenn idiomatisch).
- Narrowing/implizite Konvertierungen vermeiden; bevorzugt explizite Casts und Wrapper‑Typen.
- Wenn Tooling/Compiler das hergeben: Warnings werden in CI als Errors behandelt.

---

## Code Style & Tooling
**C/C++**
- Target standard: **C++20**.
- Build‑System‑Policy (falls CMake): `CMAKE_CXX_STANDARD=20`, `CMAKE_CXX_STANDARD_REQUIRED=ON`, `CMAKE_CXX_EXTENSIONS=OFF`.
- Format: `clang-format` (Repo‑konfiguration verwenden). Vorschläge müssen `clang-format`-konform sein.
- Lints: `clang-tidy` Empfehlungen sind willkommen; vermeide invasive API‑Änderungen.
- Type‑Safety bevorzugen:
- Keine Ownership über rohe Pointer: RAII (`std::unique_ptr`, `std::shared_ptr`) und klare Lifetimes.
- Für Größen/Indizes: `std::size_t`/`ptrdiff_t` statt `int`; für ABI/FFI: feste Breiten (`std::uint32_t` etc.).
- `enum class` statt unscoped enums; `[[nodiscard]]` für Rückgaben, die nicht ignoriert werden sollen.
- Für Views: `std::span`, `std::string_view` (keine rohen Buffer+Len‑Paare ohne Wrapper).
- Keine `#define` für Konstanten/Typen; `constexpr`/`consteval`/`using`.
- Compiler‑Strenge (als Vorschlag, projektabhängig):
- Clang/GCC: `-Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wshadow -Wnull-dereference`.
- In CI nach Möglichkeit: `-Werror` (oder selektiv `-Werror=<warning>`).
- Windows/MSVC (falls genutzt): `/W4 /WX /permissive-` und nach Möglichkeit SDL‑Hardening (`/sdl`).
- Runtime‑Checks (Debug/CI): Sanitizer‑Builds (`ASan`, `UBSan`, optional `TSan`) für native Komponenten.
- Tests: Google Test (gtest). Vorschläge für Tests sollen kleine, deterministische Cases enthalten.

**Rust**
- Format: `rustfmt`. Linter: `clippy` — Copilot soll `clippy`-freundliche Patterns bevorzugen.
- Error Handling: Verwende `Result`/`?`-Operatoren idiomatisch; keine `unwrap()` in Produktionscode.
- Type‑Safety:
- `unsafe` nur wenn notwendig; klein halten, kapseln, und Safety‑Invarianten in einem kurzen Kommentar festhalten.
- In CI bevorzugt: `cargo clippy -- -D warnings` und (falls passend) `#![deny(warnings)]`/`#![deny(clippy::all)]` auf Crate‑Level.
- Optional (wenn Crate es zulässt): `#![forbid(unsafe_code)]` in rein „safe“ Crates.
- Tests: `cargo test` mit klaren Unit‑Tests.

**Dart / Flutter**
- Format: `dart format`. Null‑safety verpflichtend.
- Architektur: Trenne UI/Business/Platform (z. B. Provider/Bloc/riverpod‑Pattern) — Copilot soll keine monolithischen Widgets vorschlagen.
- Type‑Safety:
- `analysis_options.yaml` soll strikte Analyse aktivieren (z. B. `strict-casts`, `strict-inference`, `strict-raw-types`).
- Keine `dynamic`‑Leaks in Public APIs; generische Typen überall vollständig ausfüllen.
- Prefer `flutter_lints`/`lints` (projektabhängig) und behandle Analyzer‑Warnings in CI als Fehler.
- Tests: `flutter_test` für Widgets + Unit‑Tests.

**Python (uv + ruff + ty)**
- Package Manager/Runner: **`uv`** (Dependencies gehören in `pyproject.toml`; Lockfile/Sync über `uv`).
- Tools sollen über `uv run …` ausgeführt werden (kein „global pip“, kein ungepinnter Tool‑Mix).
- Lint/Style: `ruff` (und optional Formatter nach Projektpolicy).
- Typisierung: **`ty`** als Type Checker; Copilot soll Typannotationen vollständig ergänzen und `Any` vermeiden.
- Type‑Safety Regeln:
- `from __future__ import annotations` bevorzugen (falls Projektpolicy), und öffentliche APIs vollständig annotieren.
- Keine stillen `Any`‑Leaks: `Any`/`cast()`/`# type: ignore` nur mit Begründung und so lokal wie möglich.
- Collections/Generics immer parametrisieren (`list[str]` statt `list`).

---

## CI / Checks (nur Kommandos, keine Workflow‑Änderungen)
Copilot soll bei „How to validate“ bevorzugt konkrete, reproduzierbare Kommandos vorschlagen (an Repo‑Tooling anpassen):
- C/C++: configure/build via CMake Presets oder `cmake -S . -B build` + `cmake --build build` + Tests (`ctest`).
- clang-format: `clang-format -i` (nur auf geänderten Dateien) oder ein Check‑Target.
- clang-tidy: nur wenn `compile_commands.json` vorhanden ist; keine massiven Auto‑Fixes ohne Review.
- Rust: `cargo fmt --check`, `cargo clippy -- -D warnings`, `cargo test`.
- Flutter: `dart format --output=none --set-exit-if-changed .`, `dart analyze`, `flutter test`.
- Python (uv): `uv sync` (ggf. „frozen“/locked nach Projektpolicy), dann `uv run ruff check .` und `uv run ty` (bzw. `uv run ty check`, je nach Tool‑Konfiguration).

**I/O / libuv‑basierte Bindings**
- Für libuv/uvloop/uvicorn‑artige APIs: keine blockierenden Aufrufe in Event‑Loop‑Callbacks vorschlagen.
- Prefer async patterns and explicit threading/futures when interacting with native I/O.

---

## Testing & Qualität
- Neue Features sollten Unit‑Tests enthalten. Copilot soll Test‑Skeletons vorschlagen, die vorhandene Fixtures nutzen.
- Vermeide flakige Tests; prefer deterministic seeds and small inputs.
- Coverage: Mindestens smoke tests für kritische native bindings.

---

## Interop (C/C++ <-> Rust <-> Dart)
- Copilot soll sicherheitsbewusst bei FFI/Bindings handeln: null/ownership/ABI‑stability prüfen.
- Bei Vorschlägen für Bindings: automatische Free/Fallocate Regeln, `unsafe`-Blocks in Rust nur mit Kommentar.
- Keine Code‑Generierung für Bindings ohne Hinweis (z. B. `cbindgen`, `flutter_rust_bridge`) und vorgeschlagenen Tests.

### FFI‑Typregeln (konkret)
- C ABI: `extern "C"`, stabile, explizite Layouts; keine C++‑Typen über ABI (z. B. `std::string`, Exceptions) exportieren.
- Pointer/Nullability: Nullability im Typ ausdrücken (z. B. `Option<NonNull<T>>`/`*mut T` + Dokumentation); nie „silent null“.
- Ownership: Erzeuger/Zerstörer‑Paare oder klare „borrowed vs owned“ Konventionen; keine impliziten Frees.
- Fehler: über ABI entweder Fehlercodes + `out`‑Parameter oder klar definierte Ergebnis‑Structs; keine Exceptions über FFI.

---

## Sicherheit & Geheimnisse
- Niemals API‑Keys, Passwörter, private Zertifikate oder sonstige Secrets einchecken oder vorschlagen.
- Wenn Copilot möglichen Secret‑Leak erkennt, soll es auf Vault/Secret‑Manager oder `.gitignore` hinweisen.

---

## Lizenz & rechtliche Hinweise
- Repository‑Lizenz: bitte hier eintragen (z. B. MIT / Apache‑2.0). Copilot soll Lizenz‑Header nur vorschlagen, wenn klar passend.

---

## Commit‑ und PR‑Konventionen
- Commit‑Format: **Conventional Commits** (`feat:`, `fix:`, `chore:`, `docs:` etc.).
- PRs: kurze Zusammenfassung + „Changes“ + „Testing/How to validate“ und CI‑Status.
- Keine squash‑commits für sicherheitsrelevante Änderungen ohne Review.

---

## Do / Don't (kurz)
**Do**
- Kleine, überprüfbare Änderungen vorschlagen.
- Typannotationen an öffentliche APIs ergänzen.
- Tests + CI‑Checks vorschlagen.

**Don't**
- Große, invasive Refactorings ohne PR‑Diskussion vorschlagen.
- Secrets oder unsichere Defaults einfügen.
- Ungetestete native Änderungen direkt vorschlagen (z. B. ABI‑Änderungen ohne Tests).

---

## Beispiele / Snippets
> *Hinweis: konkrete Codebeispiele und Style‑Configs (z. B. `.clang-format`, `rustfmt.toml`, `analysis_options.yaml`) sollten projekt‑spezifisch ergänzt werden.*

---

## Verhalten bei Unsicherheit
- Wenn Anforderungen unklar sind, soll Copilot Rückfragen vorschlagen (z. B. "Welcher C++ Standard wird verwendet?") anstatt zu raten.
- Für kritische Bereiche (Memory/FFI/Concurrency) präferiere conservative, safe Vorschläge und verweise auf Tests.

---

## Anpassung & Pflege
- Passe die Datei an, wenn der C++ Standard wechselt oder neue CI‑Checks/Tools (z. B. OSS security scanners) hinzukommen.

---

*Ende der projekt‑spezifischen Copilot‑Anleitung.*

*Wenn du möchtest: Ich kann noch spezifische Beispiele für `.clang-format`, `rustfmt.toml` und `analysis_options.yaml` (für Dart) hinzufügen — oder die Datei auf Englisch übersetzen.*

Loading
Loading