Review: Local dev tests fail due to bundle install network timeouts

review-1895-2026-07-20 Review

review block

Verdict: BLOCK

Root cause already fixed. The bug described in this ticket (bundle install network timeouts in local dev) was caused by k3s iptables rules breaking Docker bridge NAT. The fix — network_mode: host on the web container — was merged in PR #94 (board item #1876, done) and refined in PR #102 (issue #99). The issue should be closed rather than advanced.

Template Completeness

  • [x] Type — Bug
  • [x] Lineage — Standalone, discovered during CSS consolidation (#63)
  • [x] Repo — ldraney/intelligentstaffingsystems
  • [x] What Broke — bundle install timeouts, bundler: command not found
  • [x] Repro Steps — 3 steps provided
  • [x] Expected Behavior — described
  • [x] Environment — local dev, Harbor image, CI image
  • [x] Acceptance Criteria — 3 criteria listed
  • [x] Related — project-iss, issue #47
All required sections present. Template is complete.

Traceability

  • [x] story:project-setup label — verified in project-iss user-stories section
  • [ ] arch:infra label — present on board item, but arch note MISSING — [SCOPE] Create architecture note arch-infra
  • [x] Forgejo issue — #65, open

File Targets

  • [x] docker-compose.yml — verified: network_mode: host already on line 14 of committed main. bundle:/usr/local/bundle volume already in place for gem caching.

Repo Placement

OK — issue filed on ldraney/intelligentstaffingsystems, fix is in same repo.

Dependencies

  • PR #94 (merged, board item #1876, done) — introduced network_mode: host and dev environment overhaul
  • PR #102 (merged, issue #99) — fixed port convention (9999 to 8888) and Docker bundler failure
  • Board item #1887 (issue #99, backlog) — related port/bundler fix, also addresses overlapping symptoms

Acceptance Criteria

All 3 AC are already satisfied by the existing fix:
  • AC1: docker compose run web rails test works without network access to rubygems.org — network_mode: host enables reliable network access; bundle volume caches gems across runs.
  • AC2: Local dev gems are volume-cached — bundle:/usr/local/bundle volume is committed on main.
  • AC3: CI pipeline unchanged — Woodpecker uses its own .woodpecker.yaml with bundle install --jobs=4, unaffected by compose changes.

Blast Radius

No concerns. The fix is already merged and operational. bundle install appears in two independent paths: docker-compose.yml (local dev, host networking) and .woodpecker.yaml (CI, Woodpecker networking). They do not interact.

Decomposition Assessment

No decomposition needed — no work remains. The fix was delivered as part of other tickets.

Recommendation

  • [SCOPE] Close Forgejo issue #65 — root cause fixed by network_mode: host (PR #94, PR #102). All acceptance criteria are met by existing committed code.
  • [SCOPE] Remove or move board item #1895 to done — no implementation work remains.
  • [SCOPE] Create architecture note arch-infra for the infra component (missing traceability note, but not blocking since issue should be closed).