9931ec1237
Create src/app/service.go: the application-service layer that becomes the single owner of the durable jobs slice and the transient runtime map, guarded by a non-reentrant sync.Mutex. NewService wires a loaded store; Open() is the convenience entry point. Read-only accessors (Jobs/Runtime/Store) take the lock, and Jobs() returns a copy to keep callers from mutating Service-owned state. State-mutating intents and the event/observer machinery are deferred to T3.2-T3.4. Adds no-Fyne unit tests for runtime construction, copy isolation, and store wiring. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>