You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 15, 2026. It is now read-only.
refactor(container): remove Apple Containerization support (#50)
* refactor(container): remove Apple Containerization support
Current behavior:
Headjack supported three container runtimes: Docker, Podman, and Apple
Containerization Framework. Apple Containerization required macOS 26+
and used the `container` CLI binary.
New behavior:
Headjack now supports only Docker and Podman runtimes. All Apple
Containerization code, tests, and documentation references have been
removed. ADR-002 is preserved with "Superseded" status for historical
context.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(container): remove remaining Apple Containerization references
Current behavior:
Several files still contained Apple Containerization references after
the initial removal commit.
New behavior:
- justfile: Remove apple auto-detection and integration-test-apple target
- ADR-002: Update addendum to reflect runtime evolution and removal
- Design docs: Remove Apple from runtime support tables and diagrams
- Code comments: Update to show Docker/Podman only
- Dockerfile: Update iptables workaround comment
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(container): update listArgs comment to remove Apple reference
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: remove Apple reference from gocontainer
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/docs/decisions/adr-002-apple-containerization.md
+9-6Lines changed: 9 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,11 @@ description: Decision to use Apple Containerization Framework for agent isolatio
8
8
9
9
## Status
10
10
11
-
Accepted
11
+
Superseded
12
+
13
+
:::info Supersession Note
14
+
Apple Containerization support was removed from Headjack. The project now supports only Docker and Podman runtimes for cross-platform compatibility. This ADR is preserved for historical context.
15
+
:::
12
16
13
17
## Context
14
18
@@ -82,20 +86,19 @@ Use **Apple Containerization Framework** as the isolation technology for Headjac
82
86
- By adopting early, we participate in the framework's growth through usage and bug reports
83
87
- The iptables-legacy workaround for Docker-in-Docker is stable but adds base image complexity
84
88
85
-
## Addendum: Multi-Runtime Support
89
+
## Addendum: Runtime Evolution
90
+
91
+
This ADR originally established Apple Containerization Framework as the isolation technology. After further development, Headjack evolved to support multiple runtimes and eventually removed Apple Containerization support in favor of Docker and Podman for cross-platform compatibility.
86
92
87
-
While Apple Containerization Framework remains the recommended runtime for its superior isolation properties, Headjack now supports multiple container runtimes to accommodate different user preferences and environments:
Copy file name to clipboardExpand all lines: docs/docs/decisions/adr-005-no-gpg-support.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,15 +12,15 @@ Accepted
12
12
13
13
## Context
14
14
15
-
Developers commonly use GPG to sign git commits. When running agents in isolated Apple Containerization instances, the host's GPG keys and agent are not directly accessible.
15
+
Developers commonly use GPG to sign git commits. When running agents in isolated container instances, the host's GPG keys and agent are not directly accessible.
16
16
17
17
We investigated two approaches to enable GPG signing from within containers:
18
18
19
19
### Option 1: GPG Agent Forwarding via TCP Bridge
20
20
21
-
GPG agent forwarding works by proxying the host's `gpg-agent` socket into the container. However, Unix sockets don't cross VM boundaries (each Apple Container is a separate VM).
21
+
GPG agent forwarding works by proxying the host's `gpg-agent` socket into the container. This requires mounting the socket into the container.
22
22
23
-
A workaround exists using `socat` to bridge Unix socket → TCP on the host, then TCP → Unix socket in the container. This was validated empirically and works, including with hardware tokens (Yubikey).
23
+
A TCP bridge approach using `socat` to bridge Unix socket → TCP on the host, then TCP → Unix socket in the container was validated empirically and works, including with hardware tokens (Yubikey).
Copy file name to clipboardExpand all lines: docs/docs/explanation/image-customization.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ description: OCI images approach vs alternatives like Nix
6
6
7
7
# Image Customization
8
8
9
-
Headjack runs agents in containers, and those containers need the right tools installed. How do you customize the environment when your project needs specific languages, frameworks, or system packages? Headjack answers this with standard OCI images, delegating all customization to Docker, Podman, or Apple Container tooling you already know.
9
+
Headjack runs agents in containers, and those containers need the right tools installed. How do you customize the environment when your project needs specific languages, frameworks, or system packages? Headjack answers this with standard OCI images, delegating all customization to Dockeror Podman tooling you already know.
0 commit comments