feat: TASK-49 container reliability — tests, orchestration, MASTER_PLAN

- Add orchestration_tests.rs + mock_podman.rs (container unit tests)
- Add container-tests.yml CI workflow
- Add dev-container-test.sh for local testing
- MASTER_PLAN.md: add TASK-49 (P0) with 6-phase plan
- Login.vue: minor fixes from user testing
- AppCard.vue: enter key handler fix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-29 17:15:56 +01:00
co-authored by Claude Opus 4.6
parent 25b789bd3f
commit e8735b39ec
7 changed files with 1213 additions and 8 deletions
+8 -2
View File
@@ -8,7 +8,7 @@
:class="{ 'card-stagger': showStagger }"
:style="{ '--stagger-index': index }"
@click="$emit('goToApp', id)"
@keydown.enter="$emit('goToApp', id)"
@keydown.enter="handleEnter"
>
<!-- Installing overlay -->
<div
@@ -188,7 +188,7 @@ const props = defineProps<{
isUninstalling: boolean
}>()
defineEmits<{
const emit = defineEmits<{
goToApp: [id: string]
launch: [id: string]
start: [id: string]
@@ -197,6 +197,12 @@ defineEmits<{
showUninstall: [id: string, pkg: PackageDataEntry]
}>()
function handleEnter(e: KeyboardEvent) {
// Controller nav already handled this Enter (preventDefault was called) — skip to avoid double navigation
if (e.defaultPrevented) return
emit('goToApp', props.id)
}
const isWebOnly = computed(() => isWebOnlyApp(props.id))
// Enrich from marketplace when backend data is sparse (e.g. during install)