Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 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
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
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,46 @@ name: 🐞 Bug report
about: Report an issue
labels: ['s: pending triage', 'c: bug']
---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
What did you expect to happen but did not?

**Screenshots**
If applicable, add screenshots to help explain your problem.

### Technical information

To help us debug the problem, please complete relevant information as much as you can:

**Elk information**
- Elk URL: (e.g.: https://elk.zone, https://main.elk.zone)
- Elk version:

**Server information**
- Server URL: (e.g. https://mastodon.social)
- Server software version: (e.g. v4.5.7)
- URL to relevant post: (e.g. https://mastodon.social/@Gargron/1)

**Desktop:**
- OS: (e.g. MacOS)
- Browser: (e.g. Chrome, Safari)
- Browser version (e.g. 22)

**Smartphone:**
- Device: (e.g. iPhone6)
- OS: (e.g. iOS8.1)
- Browser: (e.g. Chrome, Safari)
- Version: (e.g. 22)

**Additional context**
Add any other context about the problem here.
2 changes: 1 addition & 1 deletion .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
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
12 changes: 8 additions & 4 deletions app/composables/about.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,14 @@ export const elkTeamMembers: Team[] = [
link: '/m.webtoo.ls/@antfu',
},
{
github: 'patak-dev',
github: 'patak-cat',
display: 'Patak',
twitter: 'patak_dev',
mastodon: 'patak@webtoo.ls',
link: '/m.webtoo.ls/@patak',
},
{
github: 'danielroe',
display: 'Daniel Roe',
twitter: 'danielcroe',
mastodon: 'daniel@roe.dev',
link: '/mastodon.roe.dev/@daniel',
},
Expand All @@ -51,7 +49,13 @@ export const elkTeamMembers: Team[] = [
display: 'TAKAHASHI Shuuji',
mastodon: 'shuuji3@webtoo.ls',
link: '/m.webtoo.ls/@shuuji3',
sponsors: 'elk-zone', // sponsors/shuuji3 isn't enabled
},
{
github: 'ayo-run',
display: 'ayo',
mastodon: 'ayo@ayco.io',
link: '/social.ayco.io/@ayo',
sponsors: 'elk-zone', // sponsors/ayo-run isn't enabled
},
].sort(() => Math.random() - 0.5)

Expand Down
2 changes: 2 additions & 0 deletions app/composables/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ export const currentServer = computed<string>(() => currentUser.value?.server ||
export const currentNodeInfo = computed<null | Record<string, any>>(() => nodes.value[currentServer.value] || null)
export const isGotoSocial = computed(() => currentNodeInfo.value?.software?.name === 'gotosocial')
export const isGlitchEdition = computed(() => currentInstance.value?.version?.includes('+glitch'))
// TODO: currentNodeInfo is null for qoto instance
// export const isQoto = computed(() => currentNodeInfo.value?.software?.version?.includes('qoto'))

export function useUsers() {
return users
Expand Down
11 changes: 5 additions & 6 deletions app/pages/[[server]]/tags/[tag].vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ const params = useRoute().params
const tagName = computed(() => params.tag as string)

const { client } = useMasto()
const { data: tag, refresh } = await useAsyncData(() => `tag-${tagName.value}`, () => client.value.v1.tags.$select(tagName.value).fetch(), { default: () => shallowRef() })
const { data: tag, refresh } = await useAsyncData(() => `tag-${tagName.value}`, () => client.value?.v1.tags.$select(tagName.value).fetch(), { default: () => shallowRef() })

const paginator = client.value.v1.timelines.tag.$select(tagName.value).list()
const paginator = client.value?.v1.timelines.tag.$select(tagName.value).list()
const stream = useStreaming(client => client.hashtag.subscribe({ tag: tagName.value }))

if (tag.value) {
Expand All @@ -28,9 +28,8 @@ onReactivated(() => {

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 ?? []
const paginator = client.value?.v1.followedTags.list()
followedTags = paginator ? (await paginator.values().next()).value ?? [] : []
}
</script>

Expand All @@ -47,7 +46,7 @@ if (currentUser.value !== undefined) {
</template>

<slot>
<TimelinePaginator :followed-tags="followedTags" v-bind="{ paginator, stream }" context="public" />
<TimelinePaginator v-if="isHydrated && paginator" :followed-tags="followedTags" v-bind="{ paginator, stream }" context="public" />
</slot>
</MainContent>
</template>
4 changes: 4 additions & 0 deletions config/pwa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ export const pwa: VitePWANuxtOptions = {
includeManifestIcons: false,
manifest: false,
injectManifest: {
// debug options
// minify: false,
// enableWorkboxModulesLogs: true,

globPatterns: ['**/*.{js,json,css,html,txt,svg,png,ico,webp,woff,woff2,ttf,eot,otf,wasm}'],
globIgnores: ['emojis/**', 'manifest**.webmanifest'],
},
Expand Down
2 changes: 1 addition & 1 deletion locales/eu-ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,6 @@
"copy_original_link_to_post": "Kopiatu bidalketa honen jatorrizko esteka",
"delete": "Ezabatu",
"delete_and_redraft": "Ezabatu eta berridatzi",
"direct_message_account": "Mezu zuzena {0}",
"edit": "Editatu",
"hide_reblogs": "Ezkutatu {0}(r)en bultzadak",
"mention_account": "Aipatu {0}",
Expand All @@ -297,6 +296,7 @@
"share_account": "Partekatu {0}",
"share_post": "Partekatu bidalketa",
"show_favourited_and_boosted_by": "Erakutsi nork egin duen gogoko eta nork bultzatu duen",
"show_reacted_by": "Erakutsi interakzioak",
"show_reblogs": "Erakutsi {0}(r)en bultzadak",
"show_untranslated": "Erakutsi jatorrizko hizkuntzan",
"toggle_theme": {
Expand Down
2 changes: 1 addition & 1 deletion locales/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@
"show_favourited_and_boosted_by": "Visa vilka som favoritmarkerade och boostade",
"show_reacted_by": "Visa vilka som reagerade",
"show_reblogs": "Visa boosts från {0}",
"show_untranslated": "Visa oöversatta",
"show_untranslated": "Visa oöversatt",
"toggle_theme": {
"dark": "Växla mörkt läge",
"light": "Växla ljust läge"
Expand Down
28 changes: 12 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,14 @@
"vue-advanced-cropper": "^2.8.9",
"vue-i18n": "^11.1.12",
"vue-virtual-scroller": "2.0.0-beta.8",
"workbox-build": "^7.1.1",
"workbox-cacheable-response": "^7.1.0",
"workbox-expiration": "^7.1.0",
"workbox-precaching": "^7.1.0",
"workbox-routing": "^7.1.0",
"workbox-strategies": "^7.1.0",
"workbox-window": "^7.1.0",
"workbox-build": "^7.4.0",
"workbox-cacheable-response": "^7.4.0",
"workbox-core": "^7.4.0",
"workbox-expiration": "^7.4.0",
"workbox-precaching": "^7.4.0",
"workbox-routing": "^7.4.0",
"workbox-strategies": "^7.4.0",
"workbox-window": "^7.4.0",
"ws": "^8.15.1"
},
"devDependencies": {
Expand All @@ -140,30 +141,25 @@
"@types/fs-extra": "^11.0.4",
"@types/wicg-file-system-access": "^2023.10.7",
"@types/ws": "^8.18.1",
"@unocss/eslint-config": "^66.6.7",
"@unocss/eslint-config": "^66.6.8",
"@vue/test-utils": "2.4.6",
"bumpp": "^10.4.1",
"consola": "^3.4.2",
"eslint": "^9.39.4",
"eslint-plugin-format": "^1.5.0",
"flat": "^6.0.1",
"nano-staged": "^0.9.0",
"ofetch": "^1.5.1",
"page-lifecycle": "^0.1.2",
"prettier": "^3.8.1",
"prettier": "^3.8.3",
"sharp": "^0.34.5",
"sharp-ico": "^0.1.5",
"simple-git-hooks": "^2.13.1",
"typescript": "^5.4.4",
"vitest": "4.0.18",
"vitest": "4.1.5",
"vue-component-type-helpers": "^3.2.6",
"vue-tsc": "^2.1.6"
},
"resolutions": {
"nuxt-component-meta": "0.17.2",
"unstorage": "^1.17.5",
"vitest": "4.0.18",
"vue": "^3.5.4"
},
"simple-git-hooks": {
"pre-commit": "npx nano-staged"
},
Expand Down
Loading
Loading