diff --git a/.eslintrc.cjs b/.eslintrc.cjs index d2a138cf..9d5a27d9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,8 +1,3 @@ -// Airbnb's own bans, kept: a `no-restricted-syntax` entry below replaces the whole list. -const airbnbRestrictedSyntax = require('eslint-config-airbnb-base/rules/style').rules[ - 'no-restricted-syntax' -]; - module.exports = { env: { browser: true, @@ -67,21 +62,6 @@ module.exports = { "@typescript-eslint/no-shadow": "error" }, overrides: [ - { - // The one join path: a join is `joinEstateRoom`, which files the DM before it sends the join. - files: ['src/**/*.ts', 'src/**/*.tsx'], - excludedFiles: ['src/app/features/estate/joinEstateRoom.ts', 'src/**/*.test.*'], - rules: { - 'no-restricted-syntax': [ - ...airbnbRestrictedSyntax, - { - selector: "CallExpression[callee.property.name='joinRoom']", - message: - 'Join a room through joinEstateRoom (features/estate/joinEstateRoom.ts), the one join path.', - }, - ], - }, - }, { files: ['*.ts'], rules: { diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 964add54..d4da18c3 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -4,14 +4,12 @@ on: pull_request: types: ['opened', 'synchronize'] -concurrency: - group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number }} - cancel-in-progress: true - jobs: build-pull-request: name: Build pull request - runs-on: ubuntu-latest + runs-on: docker + env: + PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -26,3 +24,17 @@ jobs: env: NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build + - name: Upload artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: preview + path: dist + retention-days: 1 + - name: Save pr number + run: echo ${PR_NUMBER} > ./pr.txt + - name: Upload pr number + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: pr + path: ./pr.txt + retention-days: 1 diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml deleted file mode 100644 index 24b9389c..00000000 --- a/.github/workflows/docker-pr.yml +++ /dev/null @@ -1,66 +0,0 @@ -name: 'Docker check' - -on: - pull_request: - paths: - - 'Dockerfile' - - '.github/workflows/docker-pr.yml' - -concurrency: - group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number }} - cancel-in-progress: true - -jobs: - docker-build: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - - name: Set up QEMU - uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 - - - name: Login to Docker Hub #Do not update this action from a outside PR - if: github.event.pull_request.head.repo.fork == false - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - continue-on-error: true - - - name: Login to the Github Container registry #Do not update this action from a outside PR - if: github.event.pull_request.head.repo.fork == false - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - continue-on-error: true - - - name: Extract metadata (tags, labels) for Docker, GHCR - id: meta - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0 - with: - images: | - ajbura/cinny - ghcr.io/${{ github.repository }} - - - name: Build Docker image (no push) - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 - with: - context: . - platforms: linux/amd64 - push: false - load: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - - name: Show Docker images - run: docker images diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index e96d2818..fe8aba64 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -5,13 +5,9 @@ on: paths: - 'package-lock.json' -concurrency: - group: ${{ github.workflow }}-pr-${{ github.event.pull_request.number }} - cancel-in-progress: true - jobs: lockfile_changes: - runs-on: ubuntu-latest + runs-on: docker # Permission overwrite is required for Dependabot PRs, see "Common issues" below. permissions: contents: read diff --git a/.github/workflows/rat-dev-preview.yml b/.github/workflows/rat-dev-preview.yml index 47f22b7e..158afc40 100644 --- a/.github/workflows/rat-dev-preview.yml +++ b/.github/workflows/rat-dev-preview.yml @@ -4,17 +4,10 @@ on: push: branches: ['dev'] -# One run per ref wins: a newer push to dev cancels the older queued or running one, so the run -# that builds rat-dev-dist is always the newest. Pull-request runs are other workflows and other -# groups; they never cancel it. -concurrency: - group: rat-dev-preview - cancel-in-progress: true - jobs: build: name: Build dev preview - runs-on: ubuntu-latest + runs-on: docker timeout-minutes: 30 steps: - name: Checkout repository diff --git a/config.json b/config.json index 0ebdf7c3..dd4c887b 100644 --- a/config.json +++ b/config.json @@ -1,13 +1,6 @@ { - "defaultHomeserver": 0, - "homeserverList": [ - "gamecult.org", - "converser.eu", - "matrix.org", - "mozilla.org", - "unredacted.org", - "xmr.se" - ], + "defaultHomeserver": 1, + "homeserverList": ["converser.eu", "matrix.org", "mozilla.org", "unredacted.org", "xmr.se"], "allowCustomHomeservers": true, "featuredCommunities": { "openAsDefault": false, @@ -27,14 +20,5 @@ "backgroundScene": { "tier": "off" - }, - - "dings": { - "enabled": false - }, - - "registration": { - "enabled": false, - "url": "" } } diff --git a/docs/mind-feedback-pages.md b/docs/mind-feedback-pages.md deleted file mode 100644 index 9ff45d08..00000000 --- a/docs/mind-feedback-pages.md +++ /dev/null @@ -1,242 +0,0 @@ -# Mind feedback pages - -> The desk reads `gamecult.fork.*` now, not the `org.gamecult.feedback.*` projections named below; see CultLib `contracts/cultnet/governance/fork-card.md` (src/app/features/desk/forkContract.ts). - -Design only. No code exists for this; nothing here is built. Drafted by Kiko Self (2026-11-07) with Heimdall's draft rulings -on guests and hiding; placement ruled for this repo by Void. Follow-up `eureka-body:follow_up:ratatoskr-mind-feedback-pages`. -Every number below is provisional. - -**Schema owner.** The Huginn kinds, their fields, keys and refusals are specified in `huginn-feedback-kinds-proposal.md` (Eureka Self, 2026-11-07, in -`/opt/commons/handoff`), adopted for this page by Void's Persona. Where this page names a field of those kinds it mirrors that proposal; if they differ, the proposal wins. -This repo owns only the client: a typed interface mirroring those shapes, and fixtures. - -Each Mind's section in the estate navigator opens on that Mind's **feedback page**: the Mind's open questions with options, its -recommendation and what each waits on, answerable by the operator and anyone with an account. It replaces the old Fork Desk -(taken from the brief; no trace of it was found in this repo or in the Minds' state). - -## 1. Placement - -Each Mind's navigator section **opens on its feedback page**, rooms below it. A cross-Mind list of everything waiting on a person -is wanted later and is not part of this spec. On phones the page folds each question's options and the answer form behind its title, -so the section root stays a list of questions, not a wall of forms. - -## 2. Authority - -| Concern | Owner | The page's part | -|---|---|---| -| The question | a typed `question` document in the **owning Mind's own mind**, key `:question: