Artemis is a Vala/GTK4 + Libadwaita desktop app for hunting Parks on the Air (POTA) spots.
Core features:
- Spot list and filtering (band/mode/program/search)
- Map visualization with Shumate
- Radio CAT control via Hamlib
- Local spot/QSO data in SQLite
- Packaging for Flatpak
- Language: Vala (plus a C bridge for radio control)
- UI: GTK4, Libadwaita, Blueprint UI files
- Build: Meson + Ninja
- Data: SQLite
- Network/API: libsoup + JSON-GLib
- Map: libshumate
- Radio: Hamlib through
src/radio_control.c
src/application logicblueprints/source UI definitionsdata/ui/generated UI XML resourcesdata/desktop/metainfo/gschema/resources/iconspo/translations and gettext configcom.k0vcz.Artemis.jsonFlatpak manifestscripts/release-flatpak.shFlatpak bundle build
- Build:
meson setup build && meson compile -C build - Reconfigure:
meson setup build --reconfigure - Translation template:
ninja -C build com.k0vcz.Artemis-pot - Lint must pass before commit (same expectation as pre-commit hooks, including
vala-lint).
When changing UI/resources, ensure the build succeeds and generated resources remain valid.
- Flatpak artifacts output to
dist/flatpak/ - CI release workflow files are currently removed; check repository state before adding automation.
- Gettext domain:
com.k0vcz.Artemis - Keep
po/POTFILES.inin sync with real source/UI files - Do not introduce mixed domains (
artemis-valavscom.k0vcz.Artemis)
- Agents are a tool to assist engineering work, not a substitute for engineering judgment.
- Do not "vibe code" features without tracing behavior through code paths.
- Prefer fixes that are testable, minimal, and consistent with existing architecture.
- Surface root causes, not only symptoms.
- Do not silently swallow runtime errors when debugging asynchronous code paths.
- Preserve release quality: buildable, reviewable, and maintainable changes.
- Reproduce or trace the issue.
- Identify root cause in current code, not assumptions.
- Make targeted changes.
- Compile and verify affected paths.
- Document what changed and any remaining risk.