Skip to content

History / Container Operations

Revisions

  • docs: align wiki to the Karafka writing style Style-only pass across 39 pages: reduce decorative bold to scannable labels and callouts, Title Case headings, expand contractions, present tense, US English, cut filler and --- separators, tag code fences. Commands, code, config, COI_* env vars, paths, URLs, wiki links/anchors, and tables left unchanged.

    @mensfeld mensfeld committed Sep 30, 2026
  • docs: rebrand to Coi (drop all-caps COI; Coi primary, coi command) COI -> Coi across all pages; sidebar + Home first-mention use "Coi (Code on Incus)". Preserved: COI_* env-var names and the literal "# COI Sandbox ..." context markers (they document the actual on-disk marker text). Lowercase coi commands unchanged.

    @mensfeld mensfeld committed Sep 29, 2026
  • docs: document the universal --json output alias (#765) Every command with --format text|json now also accepts --json (alias for --format json; --json wins over --format text). Authoritative note + full command list in Container Operations; inline shorthand on Image/Snapshot/ Health pages. Notes the coi container exec exception (--format json|raw).

    @mensfeld mensfeld committed Sep 2, 2026
  • docs: split Network Isolation into focused pages Network-Isolation.md had grown to ~20 KB / 365 lines covering four distinct topics. Extract the two self-contained ones into their own pages, leaving the core page focused on egress modes + hardening (now ~13.7 KB / 244 lines): - New **Static Host Entries** — `[[network.hosts]]` config, per-host `ports`, the per-mode reachability table, trusted-scope rules, and runtime `coi hosts`. - New **nftables Setup** — the open-mode workaround, install + sudoers steps, how the FORWARD-chain rules work, and orphaned-rule cleanup. Network-Isolation keeps short pointer stubs to both; the "(see below)" per-host ports reference now links the new page. Host Access to Container Services stays on the core page (it's `allow_local_network_access` firewall content, not port-publishing). Re-pointed the Container-Operations and Configuration cross-references to Static Host Entries, and added both pages to Home + _Sidebar (nested under Network Isolation). All internal links verified.

    @mensfeld mensfeld committed Sep 1, 2026
  • Align wiki with v0.10.2: model→[tool.claude], [[network.hosts]]/coi hosts, [defaults] profile, coi close, COI_TIMING_DEBUG - Migration-Guide: new 0.10.1→0.10.2 section for the breaking `model` move to [tool.claude] (wired via ANTHROPIC_MODEL). - Configuration + Profiles: move `model` docs from the config root/[defaults] to [tool.claude]; drop the now-invalid root/profile-root `model`. - Network-Isolation: new "Static Host Entries ([[network.hosts]])" section with the per-mode reachability table, trusted-scope-only caveat, and `coi hosts` runtime commands; Configuration + Container-Operations reference/cross-link it. - Profiles + Configuration: document [defaults] profile (no-flag default profile, precedence, trusted-scope-only, unknown-name hard error). - Container-Lifecycle: note `coi close` as an alias for `coi shutdown`. - Troubleshooting + Configuration: document COI_TIMING_DEBUG / _JSON startup profiling.

    @mensfeld mensfeld committed Jul 29, 2026
  • Post-release audit: fix ~50 inaccuracies vs v0.10.0 behavior Triple-check audit of every page against the released binary and code. Systemic: firewalld -> nftables (stale since the v0.9 #405 migration) across Network-Isolation, Linux-Setup-Guide, Architecture-and-Security-Model, Getting-Started, Home, FAQ*, Best-Practices, Troubleshooting, System-Health-Check — including the whole 'Firewalld Setup' section that told users to create the wrong sudoers file (/etc/sudoers.d/coi-firewalld); now documents nftables + /etc/sudoers.d/coi-nft (matching install.sh), the real error string, use_sudo=false, and the real orphan classes and health check names. Distro-default-firewall tips (Fedora/openSUSE) kept but decoupled from COI's own mechanism. Audit-Log: JSONL examples and field reference rewritten to the real ThreatEvent shape (id/timestamp/level/category/title/description/evidence/ action — the old examples used fields that never existed); COI_AUDIT_* tuning corrected (host env is not forwarded; use incus config set). Security-Best-Practices: default protected-paths table matches the 0.10 set; protection-weakening keys documented as trusted-scope only (untrusted project configs are sanitized); #533 linked-worktree support and #556 git identity seeding documented. Command usage: coi update core --check (not coi update --check), coi info <session-id>, coi persist <container>, coi run's interactive build prompt, stop-before-publish in the image workflow, --slot pinning. Config accuracy: memory enforce default is soft; effort_level accepts low/medium/high/xhigh/max/auto (default unset); [limits.disk] values are I/O rates not storage caps (Best-Practices example fixed); protected_paths default list completed; threat levels are INFO/WARNING/HIGH/CRITICAL. Navigation: 0.9->0.10 migration section linked from Home, sidebar, and footer; broken FAQ prompt-injection anchor retargeted.

    @mensfeld mensfeld committed Jul 10, 2026
  • 0.10.0 release sweep: convert removed flags/env-vars to config-key docs, add 0.9->0.10 migration section PUSH TO MASTER ONLY WHEN v0.10.0 IS TAGGED — this describes 0.10 behavior. - Migration-Guide: full 'Upgrading from 0.9 to 0.10' section (removed-flags table, deleted env-var layers, claude-on-incus retirement, resume persistence conversion, profile-beats-project-config, new opt-in features incl. [[credentials]], hardened profile, use_sudo, ready_timeout, coi run script, list filters) - Configuration: hierarchy table drops the env-var and config-flag layers; env-var section becomes a removed->replacement table; CLI flags section rewritten around operational-only flags with a removed-flags table; [shell] use_tmux added to the reference - Getting-Started, Best-Practices, Architecture, Container-Lifecycle, Container-Operations, Tmux-Automation: --persistent examples converted to [container] persistent = true config; shutdown --timeout -> shutdown_timeout - Image-Management: --image/--persistent/--compression workflows converted to config/profile equivalents (image publish keeps --compression) - Supported-Tools: --tool selection converted to [tool] name / per-tool profiles; new 'Tool Credentials and Third-Party Providers' section covering the credential catalog and [[credentials]] - Profiles: profile create flag list matches 0.10 (--inherits/--user/ --project only); profile-vs-project-config precedence note

    @mensfeld mensfeld committed Jul 10, 2026
  • Align docs with recent changes: list status filters, ready_timeout, [[credentials]], disk-IO value fixes - Configuration: [container] gains shutdown_timeout/ready_timeout in the reference; new [[credentials]] block + sections-table row (the README already points here for the credential trust model); [limits.disk] comments drop the invalid '/s' suffix - Resource-and-Time-Limits: '10MiB/s' examples were rejected by validation since v0.9.0 (e6e4af1) — now '10MiB' with the no-/s rule and SI/IEC casing spelled out; new caveat that a pathological read rate throttles the BOOT and can fail readiness (with the ready_timeout escape hatch) - Container-Operations & Container-Lifecycle: coi list --running/--stopped/ --status documented (full state vocabulary, mutual exclusion, --all interaction) - Tmux-Automation: fix broken jq path ('.[0].name' -> '.active_containers[0].name'; output has been an object since before v0.9.0) - Profiles: [[credentials]] row + new [container] keys in the key table

    @mensfeld mensfeld committed Jul 10, 2026
  • docs: complete structural, content, and style improvements (S4-S6, C1-C5, F5) Structural: - S4: Add Slot System section to Container-Lifecycle-and-Sessions explaining container naming, auto-allocation, per-slot isolation, and alias suffixes - S5: Merge Self-Update into System-Health-Check (update commands, how-it-works, post-update steps); Self-Update.md becomes a redirect - S6: Add Migration-Guide.md covering .coi.toml → .coi/config.toml move and [[mounts]] vs [[mounts.default]] syntax difference Content: - C1: Add Best-Practices.md covering session mode selection, network mode guide, monitoring recommendations, long-running tasks, team workflows, AI-generated code handling, and storage cleanup - C2: Expand Snapshot-Management.md with context opener (stateless vs stateful tradeoffs, restore requirement) and Best Practices section - C3: Add Troubleshooting section to Image-Management.md (image not found, build failures, wrong image applied, stale image after update) and Best Practices section - C4: Document coi run in Container-Operations.md with use cases, flags, and differences from coi shell - C5: Add JSONL field schema tables to Security-Monitoring.md (common fields, type-specific fields, NFT-specific fields) Formatting: - F5: Add Best Practices sections to Network-Isolation, Profiles, Image-Management, and Snapshot-Management Navigation: - Home.md updated with Best-Practices and Migration-Guide in nav

    @mensfeld mensfeld committed May 26, 2026
  • docs: quick-win formatting pass across all wiki pages - Add H1 title to all 16 pages that were missing one - Add FAQ question index with 22 anchor-linked entries grouped by category - Add See Also section to all 19 pages with curated cross-links - Upgrade three high-risk inline warnings to blockquote callouts: allow_local_network_access, mount parent dir, disable_protection

    @mensfeld mensfeld committed May 26, 2026
  • Document v0.8.1 features and fix minor v0.8.0 gaps v0.8.1 features now documented: - Profile auto-resume: --resume restores original profile (Container-Lifecycle) - `close` command as safe alias for poweroff inside containers (Container-Lifecycle) - Git identity guard: user.useConfigOnly=true prevents "code" commits (Security-Best-Practices) - Auto-trust mise config files via MISE_TRUSTED_CONFIG_PATHS (Image-Management) - Secure env-var forwarding via tmux -e, not shell export (Container-Lifecycle) v0.8.0 minor fixes: - Container-Operations: fix bare `coi` image name → `coi-default` in launch example - Profiles: show built-in `default` profile row in `coi profile list` example output - Security-Best-Practices: renumber summary list after git identity guard insertion

    @mensfeld mensfeld committed May 7, 2026
  • Fix documentation inconsistencies for 0.8.0 release - Profiles: migrate all examples from deprecated top-level image/persistent/[build] to [container]/[container.build] nesting (0.8.0 rejects the old format) - Resource-and-Time-Limits: replace obsolete [profiles.X] flat syntax with directory-based profile config.toml examples - Security-Monitoring: fix phantom config keys (rate_limit → rate_limit_per_second, remove non-existent suspicious_unlimited, file_write_threshold_mb, file_write_rate_mb_per_sec) - FAQ: move Aider from "currently supported" to "coming soon" (not yet registered) - Troubleshooting: fix tmpfs_size default comment (empty string, not 4GiB), remove phantom file_write_threshold_mb reference - File-Transfer: fix /root/.claude paths to /home/code/.claude - Container-Operations: document coi info, coi version, coi clean --pools/--orphans/--dry-run - Profiles: add note explaining [[mounts]] (profiles) vs [[mounts.default]] (main config)

    @mensfeld mensfeld committed Apr 14, 2026
  • Update wiki for 0.8.0 release - Rename default image coi → coi-default - Move config path ~/.config/coi/config.toml → ~/.coi/config.toml - Drop /etc/coi/ and ~/.config/coi/ from config hierarchy - Replace coi build custom with profile-based build workflow - Rename coi profile show → coi profile info - Document profile inheritance (inherits field) - Document coi profile create/edit/delete commands - Remove non-existent coi config --init reference

    @mensfeld mensfeld committed Apr 9, 2026
  • Update wiki for CLI flag removal and readonly mount support Remove references to 21 CLI flags that are now config/profile-only. Replace --network, --monitor, --ssh-agent, --forward-env, --timezone, --mount, --env, --limit-*, --writable-git-hooks examples with config TOML equivalents. Add readonly = true mount documentation and Claude skills/commands/plugins mounting guide (ref #260). Still-valid flags (--format, --capture, --tty, --env on container exec, --timeout, --compression on build) are unchanged.

    @mensfeld mensfeld committed Apr 3, 2026
  • docs: update wiki with recent fixes and improvements Security Monitoring: - Add large file write detection, gateway IP RFC1918 exclusion - Document dropped event tracking and orphan NFT rule cleanup - Add alert deduplication and NFT error routing details Troubleshooting (6 new entries): - Docker Compose fails in session containers - Permission denied / UID/GID mismatch - Security settings silently disabled (config merge bug) - Firewall rules accumulating - Settings.json overwritten - Cross-device link session save errors Supported Tools: - Add Claude effort level configuration - Fix opencode config path to XDG-compliant location - Update Go interfaces (ToolWithConfigDirFiles, ToolWithEffortLevel) Network Isolation: - Clarify gateway IP auto-exclusion from RFC1918 checks - Document cleanup on all termination paths including nftables - Remove duplicated container access section Container Lifecycle: - Add coi persist and coi resume commands - Document Docker/Compose support in sessions - Note sync.Once cleanup protection Container Operations: - Document three-step launch sequence for Docker support - Add UID/GID remapping and extra mount documentation FAQ: Add Docker Compose and preserve_workspace_path entries Resource Limits: Add tmpfs_size to disk limits config

    @mensfeld mensfeld committed Mar 2, 2026
  • Document container list command with JSON/text format Add documentation for the new coi container list command that provides raw container listing. Includes usage examples, JSON output structure, use cases, and comparison with the high-level coi list command.

    @mensfeld mensfeld committed Feb 9, 2026
  • Document PTY allocation support for container exec command Add comprehensive documentation for the new -t/--tty flag that enables pseudo-terminal allocation for interactive sessions. Includes usage examples, important notes about mutually exclusive flags, and common use cases for shells, tmux, and terminal applications.

    @mensfeld mensfeld committed Feb 9, 2026
  • Add focused usage guides: Container Operations, File Transfer, Tmux Automation, Image Management

    @mensfeld mensfeld committed Feb 9, 2026