← All activity records

FACTUAL ACTIVITY RECORD · An activity record based on work that took place

Completing the local service lifecycle for the Connector and Runner

Integrating fixed targets, owner-only LaunchAgents, confirmed operations, and rollback into Control Center

Activity period:

Purpose

Using the Connector and Editorial Runner locally required manually managing plist files and launchctl from Terminal. A management feature that accepted arbitrary paths or commands could not safely prevent mistakes or collisions with services using the same label.

The goal was to let the current macOS user inspect, install, start, stop, and configure automatic startup for two fixed services from Control Center, with reproducible operation that included rollback on failed updates and fail-closed handling of unknown configuration.

Implementation

administration application implements a controller limited to the current UID's gui/<uid> domain and owner LaunchAgents directory. Service labels, plist paths, commands, and schedules are fixed in an allowlist; neither the UI nor IPC accepts arbitrary values.

Plist files use owner-only permissions, reject symbolic and hard links, and are installed by an atomic rename after synchronization. Before an update, plist bytes, runtime configuration, and loaded, running, and Auto Start state are snapshotted. Failures restore that state, while unrecognized plists and label collisions are neither overwritten nor removed.

Control Center's Services screen presents separate Connector and Runner cards. It offers install, update, uninstall, start, stop, restart, and Auto Start enable or disable according to current state. A native confirmation explains the target, change, retained data, and rollback boundary before mutation.

A persistent serve entry point in command entry assembles the synchronization runtime, owner-only Unix socket, and bounded log, and closes the socket and outbox on termination signals. daily execution entry provides an hourly run-due under the same service contract, exiting as no-work without starting editorial processing at this stage.

TypeScript and Swift status, operation, and confirmation contracts were aligned through shared fixtures. State-transition tests used a temporary home and fake launchctl, while a real LaunchAgent smoke ran on supported macOS and checks confirmed that no database objects were added.

Completed composition from Control Center through local services and smoke verification

Rendering diagram…

What was confirmed

Verification results

Connector install, manual start, real Unix-socket status, stop, and uninstall succeeded, with Auto Start remaining disabled after manual start.

Runner install, manual one-shot execution, no-work result, and uninstall succeeded.

The repository-wide verification passed with 47 TypeScript tests and 22 Swift tests.

After smoke testing, no managed plist, service registration, or temporary home remained, while the boundary preserving local data outside uninstall scope was confirmed.

At the cutoff, the complete local service lifecycle had been applied to the target and its related completion conditions were recorded as satisfied.

Basis for completion

The work was complete when fixed-target installation, state transitions, rollback, and uninstall worked through Control Center and real LaunchAgents, shared contracts and automated tests passed, and no service resources remained after cleanup.