Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
936ef54
fix(sw): error page using fallback (#3585)
userquin Apr 5, 2026
2e1b6d3
chore(deps): update dependency serialize-javascript to v7.0.5 [securi…
renovate[bot] Apr 6, 2026
29bea78
chore(deps): update actions/attest-build-provenance action to v4 (#3593)
renovate[bot] Apr 7, 2026
f5fa29c
chore(deps): update dependency vite to v7.3.2 [security] (#3595)
renovate[bot] Apr 7, 2026
e962616
chore(deps): update dependency vitest to v4.1.2 (#3589)
renovate[bot] Apr 7, 2026
5db39d4
fix(i18n): update Basque localisation (#3596)
xabirequejo Apr 8, 2026
09ddb7d
chore: add ayo to Elk team member (#3594)
shuuji3 Apr 11, 2026
30103dd
fix: avoid uninitialized masto client usage during SSR (#3598)
shuuji3 Apr 12, 2026
1e1041a
chore(deps): update dependency prettier to ^3.8.2 (#3600)
renovate[bot] Apr 14, 2026
8bd8eba
chore(deps): update dependency @unocss/eslint-config to ^66.6.8 (#3599)
renovate[bot] Apr 14, 2026
ebefcac
fix: prevent empty home timeline in qoto-mastodon server (#3601)
shuuji3 Apr 14, 2026
0f388f7
chore: update bug issue template (#3602)
ayo-run Apr 14, 2026
fb7589a
chore(deps): update dependency prettier to ^3.8.3 (#3603)
renovate[bot] Apr 20, 2026
cc28764
chore(deps): update dependency vitest to v4.1.4 (#3604)
renovate[bot] Apr 20, 2026
05dce68
fix(i18n): minor fix for Swedish translation (#3605)
AntonPalmqvist Apr 24, 2026
c4b2cbc
chore(deps): update dependency vitest to v4.1.5 (#3607)
renovate[bot] Apr 27, 2026
8b89613
fix: convert ContentRich to a plain Vue SFC (#3609)
danielroe Apr 28, 2026
ef30978
test: import vue helpers explicitly to avoid vi.mock hoisting issue (…
danielroe Apr 28, 2026
76a75e9
chore: migrate resolutions to `pnpm-workspace.yaml`
danielroe Apr 28, 2026
b38791a
chore: fix lint error
shuuji3 May 15, 2026
52e5a93
chore: copy `pnpm-workspace.yaml` to container to avoid frozen `overr…
shuuji3 May 15, 2026
1f7aaf2
chore(deps): update docker/login-action action to v4 (#3616)
renovate[bot] May 15, 2026
a098ffb
chore(deps): update docker/build-push-action action to v7 (#3615)
renovate[bot] May 15, 2026
c9ae96d
chore(deps): update devdependencies (#3608)
renovate[bot] May 15, 2026
a7d2eee
chore(deps): update all non-major dependencies (#3613)
renovate[bot] May 15, 2026
411b408
chore(deps): update devdependencies (major) (#3614)
renovate[bot] May 15, 2026
2e180a6
chore(deps): update dependency simple-git to v3.36.0 [security] (#3617)
renovate[bot] May 15, 2026
66348b6
chore: migrate to pnpm v11 (#3618)
danielroe May 17, 2026
1444f20
chore(deps): update docker/metadata-action action to v6 (#3620)
renovate[bot] May 18, 2026
974b5a7
chore(deps): update dependency vitest to v4.1.6 (#3619)
renovate[bot] May 18, 2026
49991b8
test: fix vmenu warning in test by mocking `AccountTagHoverWrapper` (…
shuuji3 May 18, 2026
6e1f253
chore(deps): update dependency nuxt to v4.4.6 [security] (#3622)
renovate[bot] May 22, 2026
88952c8
chore(deps): update docker/login-action digest to 650006c (#3625)
renovate[bot] May 25, 2026
7b4990d
chore(deps): update docker/build-push-action digest to f9f3042 (#3624)
renovate[bot] May 25, 2026
b25b765
chore(deps): update dependency ws to v8.20.1 [security] (#3623)
renovate[bot] May 25, 2026
1caa4af
feat(i18n): Update it-IT locale (#3628)
katullo May 27, 2026
d78efd1
chore(deps): update dependency vitest to v4.1.7 (#3632)
renovate[bot] Jun 1, 2026
5e346ef
chore(deps): update docker/metadata-action digest to 80c7e94 (#3631)
renovate[bot] Jun 1, 2026
67903ba
fix(deps): update dependencies (#3592)
renovate[bot] Jun 2, 2026
acb29f3
chore: contributing guide improvements (#3633)
ayo-run Jun 5, 2026
7bc9209
chore: friendlier attribution on readme
ayo-run Jun 5, 2026
edb1f3e
chore: release v1.0.0
ayo-run Jun 5, 2026
eddb388
chore: update ayo link on team page (#3634)
ayo-run Jun 5, 2026
8f7f223
chore(deps): update test to v4.1.8 (#3638)
renovate[bot] Jun 8, 2026
7b54181
chore(deps): update actions/checkout digest to df4cb1c (#3637)
renovate[bot] Jun 8, 2026
e663ceb
chore(deps): update all non-major dependencies to v11.5.2 (#3639)
renovate[bot] Jun 8, 2026
d684a82
chore(deps): update docker/setup-buildx-action action to v4 (#3641)
renovate[bot] Jun 8, 2026
e0f8f12
chore(deps): update devdependencies (#3640)
renovate[bot] Jun 8, 2026
cb6a01a
chore(deps): update lint to ^3.8.4 (#3645)
renovate[bot] Jun 15, 2026
44a9282
chore(deps): update docker/setup-docker-action action to v5 (#3647)
renovate[bot] Jun 15, 2026
6a10dc1
chore(deps): update all non-major dependencies to v11.6.0 (#3646)
renovate[bot] Jun 15, 2026
9700040
chore(deps): update devdependencies (#3644)
renovate[bot] Jun 16, 2026
fd42a30
chore: delete provenance workflow (#3643)
shuuji3 Jun 16, 2026
8e1aa00
fix: blocked user profile shows 'Blocked following' button (#3629)
dawitlabs Jun 16, 2026
7ed074e
chore(deps): update dependency ws to v8.21.0 [security] (#3652)
renovate[bot] Jun 17, 2026
f1fee11
chore(deps): update dependency vite to v7.3.5 [security] (#3651)
renovate[bot] Jun 18, 2026
ba28e3c
chore: convert issue templates to yaml (#3649)
ayo-run Jun 18, 2026
e717e41
chore(deps): update dependency nuxt to v4.4.7 [security] (#3650)
renovate[bot] Jun 18, 2026
dc9d2c2
chore: fix yaml error (#3655)
ayo-run Jun 18, 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
5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

85 changes: 85 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: 🐞 Bug report
description: Report an issue
labels: ['s: pending triage', 'c: bug']
type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: To Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
- type: textarea
id: expectations
attributes:
label: Expected behavior
description: What did you expect to happen but did not?
- type: upload
id: screenshots
attributes:
label: Upload screenshots
description: If applicable, add screenshots to help explain your problem.
- type: markdown
attributes:
value: |
To help us debug the problem, please complete relevant information as much as you can:
- type: input
id: elk-url
attributes:
label: Elk information
placeholder: https://elk.zone, https://main.elk.zone
- type: input
id: elk-version
attributes:
label: Elk version
placeholder: v1.0.0
- type: input
id: server-url
attributes:
label: Mastodon Server URL
placeholder: https://mastodon.social
- type: input
id: server-version
attributes:
label: Mastodon Server version
placeholder: v4.6.0
- type: input
id: relevant-post
attributes:
label: Link to relevant posts (separate by comma)
placeholder: https://mastodon.social/@Gargron/1
- type: input
id: browser
attributes:
label: Browser used, and its version
placeholder: Chrome v112, Safari v112
- type: textarea
id: device
attributes:
label: Device used
placeholder: |
- Device: (e.g. iPhone6)
- OS: (e.g. iOS8.1)
- Browser: (e.g. Chrome, Safari)
- Version: (e.g. 22)
- type: textarea
id: additional-context
attributes:
label: Additional context
placeholder: |
Add any other context about the problem here.
5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: 🚀 New feature proposal
description: Propose a new feature
labels: ['s: pending triage']
type: feature
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request a new feature!
- type: textarea
id: feature-request
attributes:
label: Feature description
description: Tell us about your idea :)
validations:
required: true
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
# workaround for npm registry key change
# ref. `pnpm@10.1.0` / `pnpm@9.15.4` cannot be installed due to key id mismatch · Issue #612 · nodejs/corepack
# - https://github.com/nodejs/corepack/issues/612#issuecomment-2629496091
- run: npm i -g corepack@latest && corepack enable
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .nvmrc

Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,29 @@ jobs:
packages: write
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6

- name: Docker meta
id: meta
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6
with:
images: ghcr.io/${{ github.repository }}
flavor: |
suffix=-${{ matrix.platform == 'linux/arm64' && 'arm64' || 'amd64' }}

- name: Set up Docker
uses: docker/setup-docker-action@e43656e248c0bd0647d3f5c195d116aacf6fcaf4 # v4
uses: docker/setup-docker-action@0234bb73ccb40f0c430b795634f9247e2b5c2d23 # v5

- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}

- name: Build and push arch-specific image
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7
with:
context: .
platforms: ${{ matrix.platform }}
Expand All @@ -69,15 +69,15 @@ jobs:
steps:
- name: Docker meta for final tags
id: meta
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6
with:
images: ghcr.io/${{ github.repository }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4

- name: Login to GitHub Container Registry
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand All @@ -99,7 +99,7 @@ jobs:
echo "digest=$DIGEST" >> "$GITHUB_OUTPUT"

- name: Attest
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3
uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4
id: attest
with:
subject-name: ghcr.io/${{ github.repository }}
Expand Down
22 changes: 0 additions & 22 deletions .github/workflows/provenance.yml

This file was deleted.

23 changes: 13 additions & 10 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ If you have [nvm](https://github.com/nvm-sh/nvm), you can run `nvm i` to install
git checkout -b my-new-branch
```

1. Run `pnpm i` in Elk's root folder
5. Run `pnpm i` in Elk's root folder

2. Run `pnpm nuxi prepare` in Elk's root folder
6. Run `pnpm nuxi prepare` in Elk's root folder

3. Run `pnpm dev` in Elk's root folder to start dev server or `pnpm dev:mocked` to start dev server with `@elkdev@universeodon.com` user.
7. Run `pnpm dev` in Elk's root folder to start dev server or `pnpm dev:mocked` to start dev server with `@elkdev@universeodon.com` user.

We recommend installing [ni](https://github.com/antfu/ni#ni), that will use the right package manager in each of your projects. If `ni` is installed, you can instead run:

Expand All @@ -39,7 +39,10 @@ nr dev

Elk uses [Vitest](https://vitest.dev). You can run the test suite with:

```
```shell
pnpm test

# or if you installed ni
nr test
```

Expand All @@ -58,16 +61,16 @@ If not using private browsing mode, you will need to uninstall the PWA applicati
- Click on `Clear site data` button
- Go to `Application > Service Workers` and check if the current `service worker` is missing or has the state `deleted` or `redundant`

## CI errors

Sometimes when you push your changes to create a new pull request (PR), the CI can fail, but we cannot check the logs to see what went wrong.
## Before Submitting Pull Requests

If you are getting **Semantic Pull Request** error, please check the [Semantic Pull Request](https://www.conventionalcommits.org/en/v1.0.0/#summary) documentation.

You can run the following commands on your local environment to fix CI errors:
When you are ready to submit a Pull Request (PR), run the following commands on your local environment to fix CI errors:
- `pnpm test:unit` to run unit tests, maybe you also need to update snapshots
- `pnpm test:typecheck` to run TypeScript checks run on CI

Sometimes when you push your changes to create a new pull request (PR), the CI can fail, but the reviewers cannot see the logs to check what went wrong.

If you get a **Semantic Pull Request** error, please check the [Semantic Pull Request](https://www.conventionalcommits.org/en/v1.0.0/#summary) documentation.

## RTL Support

Elk supports `right-to-left` languages, we need to make sure that the UI is working correctly in both directions.
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ RUN apk add git --no-cache

# Prepare build deps ( ignore postinstall scripts for now )
COPY package.json ./
COPY pnpm-workspace.yaml ./
COPY pnpm-lock.yaml ./
RUN pnpm i --frozen-lockfile --ignore-scripts

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,4 +154,4 @@ You can consult the [PWA documentation](https://docs.elk.zone/pwa) to learn more

## 📄 License

[MIT](./LICENSE) © 2022-PRESENT Elk contributors
[MIT](./LICENSE) © 2022-PRESENT Elk contributors :)
2 changes: 1 addition & 1 deletion app/components/account/AccountFollowButton.vue
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ const buttonStyle = computed(() => {
<span elk-group-hover="hidden">{{ $t('account.blocking') }}</span>
<span hidden elk-group-hover="inline">{{ $t('account.unblock') }}</span>
</template>
<template v-if="relationship?.muting">
<template v-else-if="relationship?.muting">
<span elk-group-hover="hidden">{{ $t('account.muting') }}</span>
<span hidden elk-group-hover="inline">{{ $t('account.unmute') }}</span>
</template>
Expand Down
2 changes: 1 addition & 1 deletion app/components/common/CommonPaginator.vue
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ defineExpose({ createEntry, removeEntry, updateEntry })
<WindowVirtualizer v-slot="{ item, index }" :data="items">
<slot
v-bind="{ key: (item as any)[keyProp] }"
:item="item"
:item="item as U"
:older="items[index + 1] as U"
:newer="items[index - 1] as U"
:index="index"
Expand Down
29 changes: 0 additions & 29 deletions app/components/content/ContentRich.setup.ts

This file was deleted.

40 changes: 40 additions & 0 deletions app/components/content/ContentRich.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<script lang="ts">
import type { mastodon } from 'masto'
import type { PropType } from 'vue'
import { defineComponent, h } from 'vue'

export default defineComponent({
name: 'ContentRich',
props: {
content: {
type: String,
required: true,
},
emojis: {
type: Array as PropType<mastodon.v1.CustomEmoji[]>,
default: undefined,
},
hideEmojis: {
type: Boolean,
default: false,
},
markdown: {
type: Boolean,
default: true,
},
},
setup(props) {
const emojisObject = useEmojisFallback(() => props.emojis)

return () => h(
'span',
{ class: 'content-rich', dir: 'auto' },
contentToVNode(props.content, {
emojis: emojisObject.value,
hideEmojis: props.hideEmojis,
markdown: props.markdown,
}),
)
},
})
</script>
10 changes: 8 additions & 2 deletions app/components/timeline/TimelineHome.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@ function preprocess(items: mastodon.v1.Status[]) {
let followedTags: mastodon.v1.Tag[]
if (currentUser.value !== undefined) {
const { client } = useMasto()
const paginator = client.value.v1.followedTags.list()
followedTags = (await paginator.values().next()).value ?? []
try {
const paginator = client.value.v1.followedTags.list()
followedTags = (await paginator.values().next()).value ?? []
}
catch (e) {
console.error('Failed to fetch followed tags', e)
followedTags = []
}
}
</script>

Expand Down
Loading
Loading