Split the automatic logging path by the app that logged the flight

logging_path is now manual, automatic_flyapp or automatic_flyagentapp. The
Fly App's entries are backed by the aircraft's flight recorder and keep the
missing-FDR red flag; the Fly Agent App's come from Remote ID, which is not a
flight recorder, so they must carry the § 5 fields like a manual entry. The API
maps the old "automatic" onto automatic_flyapp so Fly App builds already on
devices keep filing. The migration has been applied to the remote PocketBase.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
tajniak81andClaude Opus 5.5 committed 2026-10-22 19:36:16 +02:00
1 parent 3dd31b257a
commit bc41d8b128
12 files changed
+242 -50

No files matched your search

+6 -3
View File
@@ -71,8 +71,11 @@ const PURPOSES = [
const PATHS = [
{ value: '', label: 'Auto (from drone)' },
{ value: 'manual', label: 'Manual' },
{ value: 'automatic', label: 'Automatic (FDR)' },
{ value: 'automatic_flyapp', label: 'Automatic — Fly App (FDR)' },
{ value: 'automatic_flyagentapp', label: 'Automatic — Fly Agent (Remote ID)' },
]
// Compliance reports the effective path as its raw value; show the same labels.
const pathLabel = (v) => PATHS.find((p) => p.value === v)?.label || v || '—'
function blankFlight() {
return {
@@ -270,7 +273,7 @@ const stats = computed(() => {
</div>
<label class="mt-3 block">
<span class="eyebrow mb-1 block">FDR log URL (automatic path)</span>
<span class="eyebrow mb-1 block">FDR log URL (Fly App path)</span>
<input v-model="flightForm.rawFdrLogUrl" class="field" placeholder="Link to the stored flight-data-recorder export" />
</label>
@@ -354,7 +357,7 @@ const stats = computed(() => {
<tr v-if="openRow === f.id" class="border-b border-line bg-surface-2">
<td colspan="7" class="px-5 py-3">
<div class="flex flex-wrap gap-x-8 gap-y-1.5 text-xs">
<span class="text-ink-secondary">Logging path: <b class="text-ink">{{ f.compliance?.loggingPath || '—' }}</b></span>
<span class="text-ink-secondary">Logging path: <b class="text-ink">{{ pathLabel(f.compliance?.loggingPath) }}</b></span>
<span class="text-ink-secondary">Category: <b class="text-ink">{{ f.category || '—' }}</b></span>
<span class="text-ink-secondary">Retain until: <b class="font-mono text-ink">{{ (f.retentionUntil || '').slice(0, 10) || '—' }}</b></span>
<span v-if="f.compliance?.exempt" class="text-ink-secondary">Exempt: <b class="text-ink">{{ f.compliance.exemptReason }}</b></span>