Skip to content

fix(force-env): refresh managed files and rebuild on recreate#19

Merged
skulidropek merged 1 commit intomainfrom
fix/force-env-refresh-managed
Feb 11, 2026
Merged

fix(force-env): refresh managed files and rebuild on recreate#19
skulidropek merged 1 commit intomainfrom
fix/force-env-refresh-managed

Conversation

@skulidropek
Copy link
Contributor

Summary

  • make --force-env rewrite managed docker-git templates (Dockerfile, docker-compose.yml, docker-git.json) so config toggles like --mcp-playwright apply on existing workspaces
  • make --force-env run compose recreate with build (up -d --build --force-recreate) while keeping volumes
  • add regression tests for both behaviors

Why

--force-env previously skipped rewriting managed files and used recreate without build, so enabling Playwright MCP on an existing workspace did not take effect.

Validation

  • pnpm -C packages/lib test
  • pnpm check
  • pnpm -C packages/lib lint:effect

@skulidropek skulidropek merged commit d95f628 into main Feb 11, 2026
8 checks passed
skulidropek added a commit that referenced this pull request Feb 15, 2026
Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>
skulidropek added a commit that referenced this pull request Feb 15, 2026
* feat(docker-git): format ps output

* feat(docker-git): default to .docker-git and sync codex config

* feat(docker-git): improve TUI ssh flow

* fix(docker-git): suspend TUI during ssh

* fix(tui): disable input during ssh

* chore: add pre-commit large file guard

* feat(docker-git): add tmux attach

* fix(docker-git): stabilize tmux panes

* fix(docker-git): stabilize select view and ssh return

* fix(docker-git): reset tmux layout on mismatch

* fix(docker-git): correct tmux actions pane

* fix(docker-git): bump tmux layout version

* refactor(cli): move docker-git cli and tmux to app

* Restore web package files from local backup

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* feat(docker-git): improve sessions and codex bootstrap

* feat(docker-git): enable zsh autosuggest

* feat(docker-git): enforce gh scopes and protect branches

* feat(docker-git): wait for ssh and track sessions

* feat(docker-git): add codex resume hint

* fix(docker-git): clean ssh login and sync templates

- Print codex resume hint on interactive shells\n- Disable Ubuntu MOTD/last-login noise inside containers\n- Silence SSH host-key warnings via LogLevel=ERROR\n- Force docker compose output to plain/no-ANSI to avoid escape sequences\n- Keep generated project templates in sync on compose up

* fix(docker-git): keep ssh port stable for running projects

Skip port re-selection when docker compose is already running for the project.

* fix(docker-git): escape newline in codex resume hint

* refactor(docker-git): remove legacy greeting scaffold

* fix(docker-git): make generated projects portable

* feat(docker-git): add down-all and per-project stop

* fix(docker-git): show only running containers in stop selector

* refactor(docker-git): remove redundant up from TUI menu

* fix(docker-git): disable mouse scroll for Ink TUI

* feat(docker-git): show connection info via selector

* feat(docker-git): add git-synced state commands

* feat(docker-git): clone state repo on init

* fix(docker-git): wipe volumes on --force

- When --force is set, run docker compose down -v before up to ensure /home/dev volume is clean

- Install pnpm via corepack in generated Dockerfiles for deterministic pnpm availability

- Update CLI/TUI wording to reflect force semantics

* update knowlenge

* feat(docker-git): add safe gitignore for state repo

* fix(docker-git): init state repo for empty remotes

* feat(docker-git): use ~/.docker-git as default projects root

* feat(docker-git): sync state repo with git

- Add "state sync" (commit + fetch/rebase + push)\n- Auto-sync state after create/update operations\n- On conflict/divergence, push a PR branch and print a compare URL

* feat(docker-git): delete project via selector

- Add TUI action to delete a project folder from the state root\n- Best-effort: run docker compose down before deleting\n- Auto-sync state repo after deletion

* feat(docker-git): confirm before deleting project

- Delete flow now requires a second Enter to confirm\n- Esc cancels confirmation\n- Confirmation resets on selection change

* fix(docker-git): auth state git operations via github token

- Read GITHUB_TOKEN from state .orch/env/global.env (or env vars)\n- Use GIT_ASKPASS for non-interactive https push/pull/sync

* fix(docker-git): normalize state sync + refresh stop selector

* fix(hooks): guard push against oversized .knowledge blobs

* feat(docker-git): share Codex auth + better SSH zsh UX

- Share Codex auth.json across projects (symlink) to avoid refresh_token_reused

- Keep per-project Codex sessions/logs under .orch

- Improve SSH terminal UX (ncurses-term, zsh completion ordering, autosuggest from history+completion)

- Support GitHub tree/blob URLs and add parser tests

* feat(docker-git): add Playwright MCP sidecar

- Add --mcp-playwright flag to generate Chromium sidecar container

- Auto-configure Codex MCP server (playwright) in entrypoint

- Provide wrapper to convert CDP HTTP endpoint -> usable WS endpoint

- Update tests + CLI usage

* feat(docker-git): isolate Playwright MCP contexts by default

* fix(docker-git): remove stale Playwright MCP block when disabled

* feat(app): expose Playwright MCP in TUI and help

* docs: add docker-git README

* fix(docker-git): make container IP reachable from external containers

- Connect managed containers to the default bridge network after compose up

- Prefer bridge IP for access logging so other containers can reach services by IP

* feat(docker-git): update default Codex config

- Default model: gpt-5.3-codex (xhigh) with pragmatic personality

- Enable live web search + web_search_request

- Enable shell_snapshot/collab/apps by default

* docs(agents): add sleep and gh workflows guidance

- Allow waiting for remote actions via sleep-based polling

- Prefer gh for issues/PRs and CI checks; wait for Actions after push

* fix(docker-git): propagate default Codex config to new containers

- Rewrite docker-git-managed Codex config.toml when defaults change

- Ensure per-project .orch/auth/codex/config.toml is updated on create and up

* feat(state): track full state dir in git

* feat(templates): allow committing .orch in state repo

* feat(state): ignore volatile Codex artifacts

* refactor(repo): move effect-template workspace to root

* fix(ci): restore checkout permissions

- Grant GITHUB_TOKEN contents:read so actions/checkout can fetch.

- Reduce lint complexity in resolveCreateInputs.

* fix(test): build lib before running app tests

CI test job runs `pnpm test` without building @effect-template/lib, but the package exports types from dist. Add `pretest` to build lib so lint:tests + vitest can resolve imports.

* chore(ci): add lib to checks

* fix(lib): pass effect lint

* fix(lib): pass vibecode-linter

* fix(ci): fail on lib lint errors

* fix(codex-config): remove deprecated web_search_request flag (#6)

Co-authored-by: codex-agent <codex-agent@users.noreply.github.com>

* ci(workflows): align with effect-template and add deps prune check (#8)

* ci(workflows): align with effect-template and add deps prune check

* fix(ci): restore snapshot checkout permission for private repo

* chore(release): version packages

* fix(shell): sync github auth env and improve docker error handling

* feat: parallel issue/PR workspaces in one repository (#9)

* feat(core): isolate issue/pr workspaces for parallel work

* fix(app): remove duplicate workspace path logic

* feat(shell): add issue workspace AGENTS context

* feat(cli): add --force-env soft reset mode

* fix(lib): resolve lint regressions in templates and file writer

* refactor(lib): split long functions for lint constraints

* refactor(lib): replace force flags params with options objects

* refactor(lib): remove forbidden casts in create-project options

* fix(lib): harden issue workspace env reset flow

* fix(lib): split auth sync copy helpers for lint

* fix(lib): manage AGENTS blocks without full overwrite

---------

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix(release): publish app CLI as @prover-coder-ai/docker-git (#16)

* fix(ci): disable npm publish in release workflow

* fix(ci): gate npm publish on token/access checks

* fix(release): publish app cli as @prover-coder-ai/docker-git

* chore(ci): drop custom release workflow changes

* fix(ci): keep app dist free of test-only deps

---------

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix: bridge GH token to git auth (#15)

* fix(shell): bridge gh token to git credentials

* fix(shell): auto-configure git credentials after gh auth

* test(docker-git): assert generated auth helper in entrypoint

* refactor(lib): split entrypoint git template blocks

---------

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix(release): publish only @prover-coder-ai/docker-git (#18)

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix(force-env): refresh managed files and rebuild on recreate (#19)

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix: handle docker socket permission failures early (#20)

* fix(shell): fail fast on docker socket permission errors

* fix(lib): reduce error renderer complexity

---------

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix(ci): validate app and lib in check workflow (#22)

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* fix(ci): enforce effect-ts analyzer on tests (#23)

* fix(lint): include tests in effect-ts analyzer

* chore(ci): retrigger checks after runner stall

---------

Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>

* chore(release): version packages

* fix: support nested docker-git auth bootstrap and compose v2 (#25)

* fix(lib): bootstrap nested docker-git auth and compose v2

* refactor(lib): split nested docker-git entrypoint template

* refactor(lib): reduce lint complexity in path normalization

* chore(release): version packages

* fix(lib): resolve playwright MCP env interpolation in wrapper script

* feat(cli): add mcp-playwright command for existing projects

- Adds docker-git mcp-playwright to enable Playwright MCP + Chromium sidecar after create\n- Rewrites managed templates + docker-git.json, preserves env files and volumes\n- Includes parser + usecase tests

* fix(test): make vibecode-linter resolve pnpm binaries

vibecode-linter shells out to npx biome/tsc, but npm's npx can miss local pnpm workspace bins.\nAdd a small npx shim (pnpm exec) and prepend it to PATH for lint scripts.

* fix(cli): avoid pipe overload in command matcher

Effect\x27s pipe typings cap at 20 args; split Match.orElse into a second pipe call.

* chore(lint): apply autofixes

* feat(cli): add mcp-playwright command for existing projects

- Adds docker-git mcp-playwright to enable Playwright MCP + Chromium sidecar after create\n- Rewrites managed templates + docker-git.json, preserves env files and volumes\n- Includes parser + usecase tests

* fix(test): make vibecode-linter resolve pnpm binaries

vibecode-linter shells out to npx biome/tsc, but npm's npx can miss local pnpm workspace bins.\nAdd a small npx shim (pnpm exec) and prepend it to PATH for lint scripts.

* fix(scripts): make npx shim executable

---------

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex-agent <codex-agent@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: skulidropek <skulidropek@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant