Skip to content

Update vikunja extension#27285

Merged
raycastbot merged 8 commits intoraycast:mainfrom
strikerlulu:ext/vikunja
Apr 22, 2026
Merged

Update vikunja extension#27285
raycastbot merged 8 commits intoraycast:mainfrom
strikerlulu:ext/vikunja

Conversation

@strikerlulu
Copy link
Copy Markdown
Contributor

@strikerlulu strikerlulu commented Apr 19, 2026

Description

Adds a new optional Raycast preference defaultProject and uses it to control which project is selected by default in the List Tasks command when no launch context projectId is given.

Screencast

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: vikunja Issues related to the vikunja extension platform: macOS labels Apr 19, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

raycastbot commented Apr 19, 2026

Thank you for your contribution! 🎉

🔔 @flexorflex you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="ext/vikunja"
FORK_URL="https://github.com/strikerlulu/extensions.git"
EXTENSION_NAME="vikunja"
REPO_NAME="extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

@strikerlulu strikerlulu marked this pull request as ready for review April 19, 2026 18:39
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 19, 2026

Greptile Summary

This PR extends the Vikunja extension with two features: a defaultProject preference that controls the initially selected project in List Tasks, and a Cmd+N "Create Task" quick action available both in the list view and in each task's action panel that pre-fills the project context. The previously flagged P1 (missing regenerated raycast-env.d.ts) is now resolved — the file is committed and includes defaultProject and the new projectId argument correctly.

Confidence Score: 5/5

Safe to merge; remaining findings are minor style suggestions only.

All previously flagged P1 issues are resolved (raycast-env.d.ts is now committed with the correct generated types). Only P2 style findings remain: a hardcoded date in the second changelog entry and a redundant ternary branch in create-task.tsx.

CHANGELOG.md — second entry uses a hardcoded date instead of {PR_MERGE_DATE}.

Important Files Changed

Filename Overview
extensions/vikunja/CHANGELOG.md Two new changelog entries added; the second uses a hardcoded date instead of the required {PR_MERGE_DATE} placeholder.
extensions/vikunja/src/list-tasks.tsx Adds defaultProject preference lookup and Cmd+N "Create Task" action panel; logic is clean and correctly defers to launchContext when present.
extensions/vikunja/src/create-task.tsx Adds projectId argument and launchContext support; defaultValue computation for the project dropdown has a minor redundant branch.
extensions/vikunja/raycast-env.d.ts Now committed and properly includes defaultProject in ExtensionPreferences and projectId in Arguments.CreateTask; resolves the previous P1 missing-file concern.
extensions/vikunja/src/components/task-list-item.tsx Adds "Create Task in Project" action with Cmd+N shortcut that launches create-task with the current task's project_id pre-filled.
extensions/vikunja/package.json Adds contributor, defaultProject preference, and projectId argument to create-task; all fields look correct.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: extensions/vikunja/CHANGELOG.md
Line: 9

Comment:
**Hardcoded date should use `{PR_MERGE_DATE}`**

Both changelog entries are newly added in this PR. The second entry uses a hardcoded date `2026-04-19` instead of the `{PR_MERGE_DATE}` placeholder that the repo standard requires for all unreleased entries. If these represent two distinct logical releases, only the top entry (the latest) needs the placeholder — but since neither exists in the repo before this PR, both should use `{PR_MERGE_DATE}` or be collapsed into one entry.

```suggestion
## [Default Project Preference] - {PR_MERGE_DATE}
```

**Rule Used:** What: Changelog entries must use `{PR_MERGE_DATE}`... ([source](https://app.greptile.com/review/custom-context?memory=c2214c11-df56-490a-b1c0-09a385df481a))

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: extensions/vikunja/src/create-task.tsx
Line: 189-195

Comment:
**Redundant outer ternary branch in `defaultValue`**

`contextProjectId` is already computed as `parseInt(argProjectId)` when `props.arguments.projectId` is truthy, so the first branch of the ternary produces the same value that the second branch would. The whole expression simplifies to:

```suggestion
            defaultValue={contextProjectId ? String(contextProjectId) : undefined}
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (3): Last reviewed commit: "chore: update gitignore to include rayca..." | Re-trigger Greptile

Comment thread extensions/vikunja/src/list-tasks.tsx Outdated
Comment thread extensions/vikunja/src/list-tasks.tsx Outdated
@flexorflex
Copy link
Copy Markdown
Contributor

Hey @strikerlulu — I'm the original author of the extension, really glad to see someone contributing! Both features are exactly the kind of quality-of-life stuff I've been missing myself 🙌

Before it goes to Raycast review: Greptile already flagged two things, and one of them unfortunately blocks the merge — the regenerated raycast-env.d.ts is missing (it was deleted but not re-committed). Running npm run dev once should regenerate it; just commit the result.

Once that's back, the manual Preferences & { defaultProject?: string } in list-tasks.tsx also becomes unnecessary — defaultProject will already be part of the auto-generated Preferences type.

Otherwise LGTM! Let me know if I can help with testing.

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
@strikerlulu strikerlulu marked this pull request as draft April 20, 2026 12:56
- remove redundant ternary branch
- Merge branch \'contributions/merge-1776689880789\'
- Pull contributions
- add raycast-env.d.ts
@strikerlulu strikerlulu marked this pull request as ready for review April 20, 2026 13:01
@strikerlulu
Copy link
Copy Markdown
Contributor Author

@flexorflex I don't know why raycast npx @raycast/api@latest publish removed that raycast-env.d.ts
I didnt clone the entire repo, i was just forking using extension shortcut and submiting pr using npx @raycast/api@latest
If you dont mind can you add it and remove the block ?

@flexorflex
Copy link
Copy Markdown
Contributor

Hey @strikerlulu — no worries at all, this one's actually on our side! The raycast-env.d.ts line in .gitignore was a leftover from the original scaffold — good catch on removing it 🙏 that's exactly why ray publish never managed to commit the regenerated file.

I pulled your branch locally and ran ray build against it. Here's what it produced:

/// <reference types="@raycast/api">

/* 🚧 🚧 🚧
 * This file is auto-generated from the extension's manifest.
 * Do not modify manually. Instead, update the `package.json` file.
 * 🚧 🚧 🚧 */

/* eslint-disable @typescript-eslint/ban-types */

type ExtensionPreferences = {
  /** Vikunja URL - Base URL of your Vikunja instance (e.g. https://tasks.example.com) */
  "apiUrl": string,
  /** API Token - Vikunja API token for authentication */
  "apiToken": string,
  /** Default Project - Default project ID to show in List Tasks. Use "all" to show all projects. */
  "defaultProject"?: string
}

/** Preferences accessible in all the extension's commands */
declare type Preferences = ExtensionPreferences

declare namespace Preferences {
  /** Preferences accessible in the `create-task` command */
  export type CreateTask = ExtensionPreferences & {}
  /** Preferences accessible in the `list-tasks` command */
  export type ListTasks = ExtensionPreferences & {}
  /** Preferences accessible in the `list-projects` command */
  export type ListProjects = ExtensionPreferences & {}
  /** Preferences accessible in the `search-tasks` command */
  export type SearchTasks = ExtensionPreferences & {}
}

declare namespace Arguments {
  /** Arguments passed to the `create-task` command */
  export type CreateTask = {
  /** Task title */
  "title": string,
  /** Project ID (optional) */
  "projectId": string
}
  /** Arguments passed to the `list-tasks` command */
  export type ListTasks = {}
  /** Arguments passed to the `list-projects` command */
  export type ListProjects = {}
  /** Arguments passed to the `search-tasks` command */
  export type SearchTasks = {}
}

Just drop it in as extensions/vikunja/raycast-env.d.ts, git add extensions/vikunja/raycast-env.d.ts, commit, push — and that should unblock everything.

Also: thanks for the ternary cleanup and switching to plain Preferences — both look great. Appreciate the quick turnaround!

strikerlulu and others added 2 commits April 20, 2026 19:39
This file is auto-generated from the extension's manifest. It defines types for extension preferences and command arguments.
@strikerlulu
Copy link
Copy Markdown
Contributor Author

I was trying to create the file from browser itself & made false commits, fixed everything @flexorflex

@0xdhrv 0xdhrv self-assigned this Apr 22, 2026
Comment thread extensions/vikunja/raycast-env.d.ts Outdated
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.

nitpick: no need to commit this

since this will be generated during the build process, you don’t need to commit it

Copy link
Copy Markdown
Contributor

@0xdhrv 0xdhrv left a comment

Choose a reason for hiding this comment

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

Looks good to me, approved ✅

@raycastbot raycastbot merged commit 26efffd into raycast:main Apr 22, 2026
2 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

Published to the Raycast Store:
https://raycast.com/flexorflex/vikunja

@raycastbot
Copy link
Copy Markdown
Collaborator

🎉 🎉 🎉

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

@strikerlulu strikerlulu deleted the ext/vikunja branch April 23, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension fix / improvement Label for PRs with extension's fix improvements extension: vikunja Issues related to the vikunja extension platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants