Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
287f9fd
chore: switch to pnpm workspaces and Node 24 LTS
FelixTJDietrich May 19, 2026
414487f
feat(library): dual-entry build for any framework or React-shared hosts
FelixTJDietrich May 19, 2026
916d0c0
feat(vscode-extension): migrate webviews to Vite + Tailwind v4 + ESLi…
FelixTJDietrich May 19, 2026
c7051d9
build(docker): node 24 + pnpm 11 + pnpm deploy + digest-pin
FelixTJDietrich May 19, 2026
9d60c90
ci: pnpm + node 24, sha-pin actions, add vs code marketplace publish
FelixTJDietrich May 19, 2026
c368b14
chore: husky → lint-staged, renovate pnpmDedupe, clean stale npm refs
FelixTJDietrich May 19, 2026
19ffafb
docs: pnpm + node 24, vs code release, peer deps, visual tests
FelixTJDietrich May 19, 2026
08f4dd6
ci: run visual-regression "install node 24" step under bash
FelixTJDietrich May 19, 2026
27e7fc9
chore: fix redis durability + simplify lib loader
FelixTJDietrich May 19, 2026
8c11d73
fix(docker): restore library build before webapp tsc
FelixTJDietrich May 19, 2026
c79683e
refactor(library)!: single bundle with mandatory peers, v5.0.0
FelixTJDietrich May 19, 2026
8835976
refactor(vscode-extension): vite + native HTML, drop deprecated deps
FelixTJDietrich May 19, 2026
bad222b
refactor(server)!: migrate from CJS to ESM
FelixTJDietrich May 19, 2026
7c731a8
chore: monorepo cleanup — correct override floors, healthchecks, hygiene
FelixTJDietrich May 19, 2026
c1cb8ca
fix(vscode-extension): unblock vsce release + theme bug
FelixTJDietrich May 19, 2026
510463a
chore(library): keep version at 4.5.0
FelixTJDietrich May 19, 2026
4b70b00
chore(library): align version with main (4.4.0)
FelixTJDietrich May 19, 2026
c64d88b
revert(library): restore dual-build for non-React hosts
FelixTJDietrich May 19, 2026
fabd438
chore: pnpm catalogs, webview lint, kill vsc-test stub, CI quality gates
FelixTJDietrich May 19, 2026
9b9bd23
chore: round-4 cleanup — server flake fix, webview DRY, dead-code cull
FelixTJDietrich May 19, 2026
2b64efa
chore: pull deferred quality gates into scope
FelixTJDietrich May 19, 2026
3a15985
chore: rename standalone/webapp → standalone/app, YjsSyncClass → YjsSync
FelixTJDietrich May 19, 2026
58dc34f
Revert "chore: rename standalone/webapp → standalone/app, YjsSyncClas…
FelixTJDietrich May 19, 2026
5bc1053
refactor(library): rename YjsSyncClass → YjsSync
FelixTJDietrich May 19, 2026
54d4a28
ci(library): drop React 19 matrix, narrow peer range to ^18.3.0
FelixTJDietrich May 20, 2026
735ca24
chore: drop python, add docusaurus 3.10 site with 4 doc plugins + liv…
FelixTJDietrich May 20, 2026
7f7d3ca
docs: round-6 audit polish (frontmatter, MyST→Docusaurus, embed, lint)
FelixTJDietrich May 20, 2026
d825f64
refactor(library): round-7 cuts — public API tightened, dead code, th…
FelixTJDietrich May 20, 2026
909a87d
chore: cross-workspace consistency — catalog promote, root meta, lint…
FelixTJDietrich May 20, 2026
844fe90
fix(ci,server,docs): address reviewer round-6 punch list
FelixTJDietrich May 20, 2026
bb72249
ci: drop attw — it can't extract our tarball (fflate streaming bug)
FelixTJDietrich May 20, 2026
124ddfe
fix(ci): resolve 19 Codacy findings flagged on this PR
FelixTJDietrich May 20, 2026
be4d9a1
fix(ci): place hadolint ignore directive on the line right above FROM
FelixTJDietrich May 20, 2026
f500f1e
feat(library): <Apollon> React component, root-cause editor fixes, do…
FelixTJDietrich May 23, 2026
418bc5a
fix(docs): center the hero — Infima's heading rule was overriding mar…
FelixTJDietrich May 23, 2026
1c54cb9
fix(docs): humanise homepage copy, framework tabs, fix .ase URLs
FelixTJDietrich May 23, 2026
123343d
feat(library)!: full no-compromise React API + webapp migration
FelixTJDietrich May 23, 2026
1cb9eaf
chore: untrack accidentally-committed .claude/ session state
FelixTJDietrich May 23, 2026
c8a3857
docs: trim landing-page comment bloat, refresh stale snippets
FelixTJDietrich May 23, 2026
f07c580
chore: gitignore .claude/ — local Claude Code agent state
FelixTJDietrich May 23, 2026
49f0e71
docs: representative snippets — load + persist round-trip, not bare m…
FelixTJDietrich May 23, 2026
e0320b8
refactor: ruthless A+ pass — cut comment bloat, test theatre, dead AP…
FelixTJDietrich May 23, 2026
fee62e5
refactor: finish <Apollon> migration — no imperative ApollonEditor in…
FelixTJDietrich May 23, 2026
321b3c2
refactor: second ruthless A+ pass — fix the "use client" bug, kill mo…
FelixTJDietrich May 23, 2026
d490660
fix(docs): pin snippet panel height so tab switch doesn't shove the l…
FelixTJDietrich May 23, 2026
5552b11
docs: cross-source verification pass — fix every factual drift the au…
FelixTJDietrich May 23, 2026
2eb0e23
chore(docs): drop unused 3.1 MB mascot asset
FelixTJDietrich May 23, 2026
62f6983
fix: address open PR review threads
FelixTJDietrich May 23, 2026
6ace7e4
fix(docs): correct bundle-size claim — Yjs is eager, not lazy-loaded
FelixTJDietrich May 23, 2026
0164f4a
Merge branch 'main' into chore/pnpm-node24-migration
tamang29 May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.git
.github
.gitignore
.husky
.context
.env
.env.*
Expand All @@ -16,15 +17,29 @@ test-results/
*.log

node_modules/
**/node_modules/
dist/
**/dist/

**/tests/
**/__tests__/
**/*.test.ts
**/*.test.tsx
**/*.spec.ts
**/playwright.config.ts
**/vitest.config.ts

standalone/webapp/dist
standalone/webapp/node_modules
standalone/webapp/android
standalone/webapp/ios

standalone/server/dist
standalone/server/node_modules
# Keep the vscode-extension package.json files (pnpm install reads them
# as workspace manifests), but drop the source.
vscode-extension/src
vscode-extension/menu/src
vscode-extension/editor/src
vscode-extension/menu/dist
vscode-extension/editor/dist
vscode-extension/dist

library/node_modules
library/dist
scripts/
.changeset/
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
11 changes: 11 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* text=auto eol=lf

pnpm-lock.yaml linguist-generated=true -diff merge=binary

*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg text
*.vsix binary
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ body:
attributes:
label: Web Console Output
description: If applicable, copy output from the Web Console.
render: shell
render: shell
7 changes: 5 additions & 2 deletions .github/workflows/build-and-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ jobs:
- 'docker/**'
- 'nginx.conf'
- 'package.json'
- 'package-lock.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.npmrc'
- '.nvmrc'
- 'tsconfig*.json'
- '.github/workflows/build-and-push.yml'

Expand All @@ -68,7 +71,7 @@ jobs:
dockerfile: ./standalone/server/Dockerfile
image: ghcr.io/ls1intum/apollon/server
context: .
uses: ls1intum/.github/.github/workflows/build-and-push-docker-image.yml@main
uses: ls1intum/.github/.github/workflows/build-and-push-docker-image.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main
with:
image-name: ${{ matrix.image }}
docker-file: ${{ matrix.dockerfile }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ permissions: {}
jobs:
deploy-db:
if: ${{ inputs.deploy-db }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Production
docker-compose-file: "./docker/compose.db.yml"
Expand All @@ -58,7 +58,7 @@ jobs:

deploy-proxy:
if: ${{ inputs.deploy-proxy }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Production
docker-compose-file: "./docker/compose.proxy.yml"
Expand All @@ -69,7 +69,7 @@ jobs:

deploy-app:
if: ${{ inputs.deploy-app }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Production
docker-compose-file: "./docker/compose.app.yml"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ permissions: {}
jobs:
deploy-db:
if: ${{ inputs.deploy-db }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Staging
docker-compose-file: "./docker/compose.db.yml"
Expand All @@ -58,7 +58,7 @@ jobs:

deploy-proxy:
if: ${{ inputs.deploy-proxy }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Staging
docker-compose-file: "./docker/compose.proxy.yml"
Expand All @@ -69,7 +69,7 @@ jobs:

deploy-app:
if: ${{ inputs.deploy-app }}
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@main
uses: ls1intum/.github/.github/workflows/deploy-docker-compose.yml@c8ede985ff7999c28d7538cb32ae52bfb83f51b9 # main as of 2026-05-19
with:
environment: Staging
docker-compose-file: "./docker/compose.app.yml"
Expand Down
99 changes: 99 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Docs

# - PR with docs changes: build a /-rooted bundle (preview)
# - push to main with docs changes: build /Apollon/-rooted bundle, deploy
# to GitHub Pages

on:
push:
branches: [main]
paths:
- "docs/**"
- "library/**"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- ".github/workflows/docs.yml"
pull_request:
paths:
- "docs/**"
- "library/**"
- ".github/workflows/docs.yml"
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: docs-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build Docusaurus site
runs-on: ubuntu-latest
timeout-minutes: 15
outputs:
is-production: ${{ steps.flag.outputs.is-production }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: pnpm/action-setup@ac6db6d3c1f721f886538a378a2d73e85697340a # v6.0.8

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: ".nvmrc"
cache: "pnpm"

- id: flag
run: |
if [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/main" ]]; then
echo "is-production=true" >> "$GITHUB_OUTPUT"
else
echo "is-production=false" >> "$GITHUB_OUTPUT"
fi

- run: pnpm install --frozen-lockfile

# Library must be built first — the docs site imports
# `@tumaet/apollon` for the live embed on the homepage.
- run: pnpm --filter @tumaet/apollon run build

- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: |
docs/.docusaurus
docs/node_modules/.cache
key: docusaurus-${{ steps.flag.outputs.is-production }}-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('docs/**/*.{md,mdx,ts,tsx}') }}
restore-keys: |
docusaurus-${{ steps.flag.outputs.is-production }}-${{ hashFiles('pnpm-lock.yaml') }}-
docusaurus-${{ steps.flag.outputs.is-production }}-

- run: pnpm --filter @tumaet/apollon-docs run build
env:
DOCUSAURUS_BASE_URL: ${{ steps.flag.outputs.is-production == 'true' && '/Apollon/' || '/' }}

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: docs-build
path: docs/build
retention-days: 7
if-no-files-found: error

- if: steps.flag.outputs.is-production == 'true'
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
with:
path: docs/build

deploy:
name: Deploy to GitHub Pages
needs: build
if: needs.build.outputs.is-production == 'true'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
Loading
Loading