Skip to content

Stop making the repo clone load-bearing for the running service #3

Description

@STRML

plists.py:54 bakes @WORKDIR@ = REPO_ROOT into the rendered plist, and the job runs uv run uvicorn ... from there. Two consequences, neither documented:

  • Moving or deleting the clone breaks the service. launchd keeps restarting it (KeepAlive is true), the failure only shows up as a nonzero exit in /tmp/hark.err, and nothing points at the real cause.
  • git pull live-patches a running daemon. The next request runs whatever just landed, without a reload you asked for.

test_workdir_is_the_repo_root currently asserts this coupling holds, so it is deliberate rather than accidental. The suggestion is to change the intent, not to call it a bug.

Fix: install the package somewhere stable (uv tool install ., or a venv under ~/.local/share/hark) and point ProgramArguments at that instead of at the clone. The clone becomes disposable, and upgrades become an explicit reinstall.

Worth checking against #4 first, since that one changes what the server needs at runtime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions