Update vikunja extension#27285
Conversation
…log and generated types
|
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 commandsBRANCH="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 devWe're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days. |
Greptile SummaryThis PR extends the Vikunja extension with two features: a Confidence Score: 5/5Safe 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
Prompt To Fix All With AIThis 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 |
…ct project in Create Task
|
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 Once that's back, the manual 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>
- remove redundant ternary branch - Merge branch \'contributions/merge-1776689880789\' - Pull contributions - add raycast-env.d.ts
|
@flexorflex I don't know why raycast |
|
Hey @strikerlulu — no worries at all, this one's actually on our side! The I pulled your branch locally and ran /// <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 Also: thanks for the ternary cleanup and switching to plain |
This file is auto-generated from the extension's manifest. It defines types for extension preferences and command arguments.
|
I was trying to create the file from browser itself & made false commits, fixed everything @flexorflex |
There was a problem hiding this comment.
nitpick: no need to commit this
since this will be generated during the build process, you don’t need to commit it
0xdhrv
left a comment
There was a problem hiding this comment.
Looks good to me, approved ✅
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag. |
Description
Adds a new optional Raycast preference
defaultProjectand uses it to control which project is selected by default in theList Taskscommand when no launch contextprojectIdis given.Screencast
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder