Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7d59ae6
Introduce EditorPort interface to decouple external consumers from Co…
hackerwins Feb 11, 2026
29ad89e
Apply linter formatting to editor-port design doc
hackerwins Feb 11, 2026
27aa075
Restructure monorepo: move frontend and backend into packages/
JOOHOJANG Feb 11, 2026
862895e
Add @codepair/ui package with shared types and pure components
JOOHOJANG Feb 11, 2026
11555c6
Add @codepair/codemirror package with CMEditorSuite vertical slice
JOOHOJANG Feb 11, 2026
207f6d7
Add EditorPort architecture documentation
JOOHOJANG Feb 11, 2026
dc65bae
Replace GitHub OAuth credentials with placeholders in docker-compose
JOOHOJANG Feb 11, 2026
a338bd9
Revert unintended mongo command and healthcheck format changes
JOOHOJANG Feb 11, 2026
19bf4bd
Address code review feedback
JOOHOJANG Feb 11, 2026
9987546
Address second round of code review feedback
JOOHOJANG Feb 12, 2026
0ab6387
Address third round of code review feedback
JOOHOJANG Feb 12, 2026
c66a2ea
Update documentation paths for monorepo structure
JOOHOJANG Feb 12, 2026
a1bf1d2
Fix format:check by adding dist to .prettierignore and update archite…
JOOHOJANG Feb 19, 2026
3e901a5
Add EditorSuiteProps shared contract and unify CodeKeyType
JOOHOJANG Feb 19, 2026
64377a4
Merge branch 'main' into editor-port
JOOHOJANG Feb 19, 2026
4543db6
Rename public exports to editor-agnostic names
JOOHOJANG Feb 19, 2026
e98b350
Update documentation to reflect EditorSuiteProps, CodeKeyType unifica…
JOOHOJANG Feb 19, 2026
209ce78
Rename Yorkie types to editor-agnostic names
JOOHOJANG Feb 19, 2026
4634662
Fix CI: regenerate lockfile for @yorkie-js/sdk@0.6.41
JOOHOJANG Feb 19, 2026
bdf3495
Fix frontend build: align @yorkie-js/sdk to 0.6.48 in codemirror package
JOOHOJANG Feb 19, 2026
d8b231e
feat(ui): add EditorPosition type to support tree-based coordinates
JOOHOJANG Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 7 additions & 3 deletions .github/workflows/ci_backend.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@ on:
branches: main
paths:
- ".github/workflows/ci_backend.yaml"
- "backend/**"
- "packages/backend/**"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_backend.yaml"
- "backend/**"
- "packages/backend/**"
Comment on lines 5 to +15
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Include workspace root dependency files in the CI path filters.

Backend CI can break when workspace-level files change (e.g., lockfile or workspace config), but those edits won’t currently trigger this workflow.

🛠️ Suggested update
@@
     paths:
       - ".github/workflows/ci_backend.yaml"
       - "packages/backend/**"
+      - "pnpm-lock.yaml"
+      - "pnpm-workspace.yaml"
@@
     paths:
       - ".github/workflows/ci_backend.yaml"
       - "packages/backend/**"
+      - "pnpm-lock.yaml"
+      - "pnpm-workspace.yaml"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
paths:
- ".github/workflows/ci_backend.yaml"
- "backend/**"
- "packages/backend/**"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_backend.yaml"
- "backend/**"
- "packages/backend/**"
paths:
- ".github/workflows/ci_backend.yaml"
- "packages/backend/**"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_backend.yaml"
- "packages/backend/**"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
🤖 Prompt for AI Agents
In @.github/workflows/ci_backend.yaml around lines 5 - 13, The workflow's path
filter under the "paths:" key in ci_backend.yaml currently only watches
".github/workflows/ci_backend.yaml" and "packages/backend/**"; update both the
push and pull_request path lists to also include workspace-root
dependency/config files (e.g., package.json, package-lock.json, yarn.lock,
pnpm-lock.yaml, pnpm-workspace.yaml, turbo.json, and any other repo-level lock
or workspace config) so changes to those files trigger the backend CI; modify
the two "paths:" arrays accordingly in the existing file.

- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"

jobs:
test:
Expand All @@ -21,7 +25,7 @@ jobs:
matrix:
node-version: [20.x, 22.x, 24.x]
env:
working-directory: ./backend
working-directory: ./packages/backend
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
Expand Down
28 changes: 17 additions & 11 deletions .github/workflows/ci_frontend.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@ on:
branches: main
paths:
- ".github/workflows/ci_frontend.yaml"
- "frontend/**"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_frontend.yaml"
- "frontend/**"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
Comment on lines 6 to +19
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Include root workspace/lockfile paths in filters to avoid skipped CI.

Changes to root workspace config or lockfile won’t trigger this workflow, so dependency updates could land unvalidated. Add the root workspace/lockfile paths to both push and pull_request.

✅ Suggested patch
     paths:
       - ".github/workflows/ci_frontend.yaml"
+      - "package.json"
+      - "pnpm-lock.yaml"
+      - "pnpm-workspace.yaml"
       - "packages/frontend/**"
       - "packages/ui/**"
       - "packages/codemirror/**"
@@
     paths:
       - ".github/workflows/ci_frontend.yaml"
+      - "package.json"
+      - "pnpm-lock.yaml"
+      - "pnpm-workspace.yaml"
       - "packages/frontend/**"
       - "packages/ui/**"
       - "packages/codemirror/**"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- ".github/workflows/ci_frontend.yaml"
- "frontend/**"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_frontend.yaml"
- "frontend/**"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
- ".github/workflows/ci_frontend.yaml"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
pull_request:
branches:
- main
paths:
- ".github/workflows/ci_frontend.yaml"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "packages/frontend/**"
- "packages/ui/**"
- "packages/codemirror/**"
🤖 Prompt for AI Agents
In @.github/workflows/ci_frontend.yaml around lines 6 - 17, The workflow's path
filters under the push and pull_request triggers are missing root workspace and
lockfile entries, so update the triggers' paths arrays (the push and
pull_request keys) to include the repository root workspace config and lockfile
(e.g., add "/" and your lockfile name such as "pnpm-lock.yaml" or
"package-lock.json") so changes to workspace/lockfiles will also trigger the CI;
modify the paths lists referenced under push and pull_request in the YAML to
contain those root/lockfile paths in addition to the existing package globs.

- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"

jobs:
test:
Expand All @@ -20,8 +28,6 @@ jobs:
fail-fast: false
matrix:
node-version: [20.x, 22.x, 24.x]
env:
working-directory: ./frontend
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
Expand All @@ -34,13 +40,13 @@ jobs:
cache: "pnpm"
- name: Install packages
run: pnpm install --frozen-lockfile
working-directory: ${{ env.working-directory }}
- name: Lint UI
run: pnpm --filter=@codepair/ui lint
- name: Lint CodeMirror
run: pnpm --filter=@codepair/codemirror lint
- name: Prettier
run: pnpm run format:check
working-directory: ${{ env.working-directory }}
run: pnpm --filter=@codepair/frontend format:check
- name: Lint
run: pnpm run lint
working-directory: ${{ env.working-directory }}
run: pnpm --filter=@codepair/frontend lint
- name: Build
run: pnpm run build
working-directory: ${{ env.working-directory }}
run: pnpm --filter=@codepair/frontend build
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish-latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
- main
paths:
- ".github/workflows/docker-publish-latest.yaml"
- "backend/**"
- "packages/backend/**"
- "Dockerfile"
jobs:
call-base-docker-publish:
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/gh_pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ on:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
env:
working-directory: ./frontend
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
Expand All @@ -22,22 +20,21 @@ jobs:
cache-dependency-path: pnpm-lock.yaml

- name: Setup Sentry Env 🛠️
working-directory: ${{ env.working-directory }}
working-directory: ./packages/frontend
run: |
echo "SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}" >> .env.sentry-build-plugin
echo "SENTRY_ORG=${{ secrets.SENTRY_ORG }}" >> .env.sentry-build-plugin
echo "SENTRY_PROJECT=${{ secrets.SENTRY_PROJECT }}" >> .env.sentry-build-plugin

- name: Install and Build 🔧
working-directory: ${{ env.working-directory }}
env:
NODE_OPTIONS: "--max_old_space_size=4096"
run: |
pnpm install --frozen-lockfile
pnpm run build
pnpm --filter=@codepair/frontend build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4.7.3
with:
branch: gh-pages
folder: frontend/dist
folder: packages/frontend/dist
12 changes: 6 additions & 6 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@ LINT_FRONTEND=false
LINT_BACKEND=false

for FILE in $CHANGED_FILES; do
if [[ "$FILE" =~ ^frontend/ ]]; then
if [[ "$FILE" =~ ^packages/frontend/ ]]; then
LINT_FRONTEND=true
elif [[ "$FILE" =~ ^backend/ ]]; then
elif [[ "$FILE" =~ ^packages/backend/ ]]; then
LINT_BACKEND=true
fi
done
Comment on lines 8 to 18
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add lint coverage for new packages (ui, codemirror).

Line 7 only sets lint flags for frontend/backend. Changes in packages/ui or packages/codemirror won’t trigger lint-staged, so those packages can bypass pre-commit checks.

✅ Proposed fix (add flags + blocks for new packages)
 LINT_FRONTEND=false
 LINT_BACKEND=false
+LINT_UI=false
+LINT_CODEMIRROR=false

 for FILE in $CHANGED_FILES; do
   if [[ "$FILE" =~ ^packages/frontend/ ]]; then
     LINT_FRONTEND=true
   elif [[ "$FILE" =~ ^packages/backend/ ]]; then
     LINT_BACKEND=true
+  elif [[ "$FILE" =~ ^packages/ui/ ]]; then
+    LINT_UI=true
+  elif [[ "$FILE" =~ ^packages/codemirror/ ]]; then
+    LINT_CODEMIRROR=true
   fi
 done

+# UI package
+if [ "$LINT_UI" = true ]; then
+  echo "Changes detected in ui. Linting & Formatting ui..."
+  cd packages/ui
+  npx lint-staged
+  if [ $? -ne 0 ]; then
+    echo "UI Linting & Formatting failed. Commit aborted."
+    exit 1
+  fi
+  cd ../..
+fi
+
+# CodeMirror package
+if [ "$LINT_CODEMIRROR" = true ]; then
+  echo "Changes detected in codemirror. Linting & Formatting codemirror..."
+  cd packages/codemirror
+  npx lint-staged
+  if [ $? -ne 0 ]; then
+    echo "CodeMirror Linting & Formatting failed. Commit aborted."
+    exit 1
+  fi
+  cd ../..
+fi
🤖 Prompt for AI Agents
In @.husky/pre-commit around lines 6 - 12, The pre-commit loop only sets
LINT_FRONTEND and LINT_BACKEND based on CHANGED_FILES, missing packages/ui and
packages/codemirror; update the loop to also detect files under ^packages/ui/
and ^packages/codemirror/ and set new flags (e.g., LINT_UI and LINT_CODEMIRROR)
accordingly, and then add/ensure the corresponding conditional blocks later in
the script check LINT_UI and LINT_CODEMIRROR (similar to
LINT_FRONTEND/LINT_BACKEND) to invoke lint-staged for those packages.


if [ "$LINT_FRONTEND" = true ]; then
echo "Changes detected in the frontend. Linting & Formatting frontend..."
cd frontend
cd packages/frontend
npx lint-staged
if [ $? -ne 0 ]; then
echo "Frontend Linting & Formatting failed. Commit aborted."
exit 1
fi
cd ..
cd ../..
fi

if [ "$LINT_BACKEND" = true ]; then
echo "Changes detected in the backend. Linting & Formatting backend..."
cd backend
cd packages/backend
npx lint-staged
if [ $? -ne 0 ]; then
echo "Backend Linting & Formatting failed. Commit aborted."
exit 1
fi
cd ..
cd ../..
fi
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ COPY . /usr/src/app
WORKDIR /usr/src/app
RUN sed -i 's/"prepare": "husky install"/"prepare": ""/' ./package.json
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpx prisma@^5.8.1 generate --schema=./backend/prisma/schema.prisma
RUN pnpx prisma@^5.8.1 generate --schema=./packages/backend/prisma/schema.prisma
RUN pnpm backend build
RUN pnpm deploy --filter=backend --prod /prod/backend
RUN pnpm deploy --filter=@codepair/backend --prod /prod/backend
WORKDIR /prod/backend
RUN pnpx prisma@^5.8.1 generate

Expand Down
137 changes: 0 additions & 137 deletions backend/.env.development

This file was deleted.

Loading