From 450f49336be79eb55b71bdf25c999631f8010bc1 Mon Sep 17 00:00:00 2001 From: GitHub Copilot CLI Date: Sun, 5 Apr 2026 16:43:40 +0900 Subject: [PATCH 1/2] chore: track projects directory with README only --- .gitignore | 7 ++++++- projects/README.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 projects/README.md diff --git a/.gitignore b/.gitignore index 6bd6ef5..de9aa4f 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,11 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +# 基盤リポジトリ配下に置く別アプリ実装リポジトリ +# ディレクトリ自体は管理し、READMEのみ追跡する +projects/* +!projects/README.md + # 一時ファイル tmp/ temp/ @@ -45,4 +50,4 @@ tailscale.state # 開発用データベース *.sqlite *.sqlite3 -*.db \ No newline at end of file +*.db diff --git a/projects/README.md b/projects/README.md new file mode 100644 index 0000000..3586e96 --- /dev/null +++ b/projects/README.md @@ -0,0 +1,31 @@ +# projects ディレクトリ運用ガイド + +このディレクトリは、OpenCode ECC DevContainer 基盤上で作業する +アプリ実装用リポジトリを配置するための場所です。 + +## 目的 + +- 基盤リポジトリとアプリ実装リポジトリを分離する +- DevContainer の共通環境を維持しながら、複数アプリを扱えるようにする +- 誤って基盤リポジトリにアプリ実装コードをコミットしないようにする + +## 使い方 + +1. この配下にアプリのリポジトリを clone する +2. 実装・コミット・PR はアプリ側リポジトリで行う +3. この基盤リポジトリには、原則としてアプリ実装成果物を含めない + +例: + +```bash +git clone https://github.com//.git projects/ +cd projects/ +``` + +## Git 管理ルール + +- `projects/` ディレクトリ自体は管理対象 +- `projects/README.md` は管理対象 +- `projects/` 配下のそれ以外は管理対象外 + +このルールにより、運用ガイドは共有しつつ、実装リポジトリの混入を防止できます。 From 1672ad424680d20d21495294920a7180a6a0e729 Mon Sep 17 00:00:00 2001 From: GitHub Copilot CLI Date: Sun, 5 Apr 2026 20:40:13 +0900 Subject: [PATCH 2/2] feat: set default OpenChamber project path to /workspace/projects --- .devcontainer/startup.sh | 27 +++++++++++++++++++++++++++ .env.template | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/.devcontainer/startup.sh b/.devcontainer/startup.sh index bce0ce3..75591f6 100755 --- a/.devcontainer/startup.sh +++ b/.devcontainer/startup.sh @@ -94,6 +94,11 @@ OPENCODE_PORT=${OPENCODE_PORT:-4095} OPENCHAMBER_PORT=${OPENCHAMBER_PORT:-3000} OPENCODE_HOST=${OPENCODE_HOST:-0.0.0.0} OPENCHAMBER_HOST=${OPENCHAMBER_HOST:-0.0.0.0} +OPENCHAMBER_DEFAULT_PROJECT_DIR=${OPENCHAMBER_DEFAULT_PROJECT_DIR:-/workspace/projects} + +if [ ! -d "$OPENCHAMBER_DEFAULT_PROJECT_DIR" ]; then + OPENCHAMBER_DEFAULT_PROJECT_DIR="/workspace" +fi REMOTE_ACCESS_MODE=false TAILSCALE_IP="" @@ -167,6 +172,28 @@ OPENCHAMBER_PID=$! sleep 2 +set_default_project_directory() { + local target_dir="$1" + [ -d "$target_dir" ] || return 0 + + local payload + payload=$(printf '{"path":"%s"}' "$target_dir") + + for i in {1..10}; do + if curl -fsS -X POST "http://localhost:$OPENCHAMBER_PORT/api/opencode/directory" \ + -H "Content-Type: application/json" \ + -d "$payload" >/tmp/openchamber-default-dir.json 2>/tmp/openchamber-default-dir.err; then + echo "✅ OpenChamber の初期プロジェクトパスを設定: $target_dir" + return 0 + fi + sleep 1 + done + + echo "⚠️ OpenChamber の初期プロジェクトパス設定に失敗しました(起動継続)" +} + +set_default_project_directory "$OPENCHAMBER_DEFAULT_PROJECT_DIR" + check_service() { local port=$1 local name=$2 diff --git a/.env.template b/.env.template index b89b75d..5c9542a 100644 --- a/.env.template +++ b/.env.template @@ -22,5 +22,9 @@ OPENCODE_PORT=4095 OPENCHAMBER_HOST=0.0.0.0 OPENCHAMBER_PORT=3000 +# 📁 OpenChamber の初期プロジェクトディレクトリ(オプション) +# 例: /workspace/projects または /workspace +OPENCHAMBER_DEFAULT_PROJECT_DIR=/workspace/projects + # 🛠️ 開発環境(オプション) NODE_ENV=development