Skip to content

feat(workspace): update to 1.1.0 - #406

Open
tiagem wants to merge 2 commits into
vicinaehq:mainfrom
tiagem:feat/update-workspace-1.1.0
Open

tiagem wants to merge 2 commits into
vicinaehq:mainfrom
tiagem:feat/update-workspace-1.1.0

Conversation

@tiagem

@tiagem tiagem commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Project discovery settings: scan depth, markers, nested projects, ignore patterns.
  • Usage statistics with most-opened projects per period.
  • Workspace filtering in the main list and in tag assignment.
  • Open README renders in a native markdown Detail view with project metadata.
  • Settings split into sections with subtitles.
  • Icons on every context-menu action; toggles show state.

Screenshots

Frame 45 Frame 46 Frame 47 Frame 48 Frame 49

@clankus-aurelius

clankus-aurelius commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Thanks for contributing an extension to Vicinae! 👋

Before publication, this pull request receives two reviews:

  1. An automated review for extension guidelines, safety, error handling, and likely correctness issues.
  2. A final review from a Vicinae maintainer.

✅ Ready for human review. The automated reviewer approved the latest commit and a maintainer has been notified.

No blocking findings remain on the latest commit.

The automated reviewer examines only the current commit. New commits invalidate its previous decision and start another review.

@clankus-aurelius clankus-aurelius added the ai-reviewing Automated extension review is running label Sep 23, 2026
@tiagem tiagem changed the title feat(workspace): update to 1.1.0 (settings, tag assignment, README view) feat(workspace): update to 1.1.0 Sep 23, 2026

@clankus-aurelius clankus-aurelius left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Found one publication-blocking data-loss issue and two correctness problems affecting persistence and bulk tag assignment.


Automated review found 1 publication-blocking issue.

This is an AI-generated first pass and may be mistaken. If a finding is unclear or incorrect, reply in the relevant thread and mention @aurelleb.

Comment on lines +107 to +108
} catch {
return;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🔴 Blocking — Failed workspace scans are treated as complete

Rule: CORRECTNESS-001

A root readdir failure is swallowed, so scanWorkspaceProjects returns an empty, non-truncated result. useProjectDiscovery consequently marks the unavailable workspace as completely scanned, replaces its cached projects, and allows pruneMissingProjects to permanently remove its pins and recents—for example when a removable or network workspace is temporarily unavailable.

Suggested resolution: Propagate or explicitly record a root-directory read failure so scanWorkspace returns complete: false. Preserve the previous project set and exclude that root from pruning until a successful scan occurs.

Comment on lines +114 to +118
const current = getOrCreateSlot(key, initialValue);
// Writes before LocalStorage loads would persist defaults and skip hydration.
if (!current.hydrated) {
return;
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🟠 Warning — Pre-hydration writes are silently discarded

Rule: CORRECTNESS-001

Every setter returns without writing while its individual key is loading. New settings and tag screens remain interactive without checking those hydration states, so an immediate tag creation, preference change, reset, or settings import can report success while some or all changes are lost.

Suggested resolution: Queue writes made during hydration and apply them after the stored value loads, or keep all affected mutation UI disabled until every relevant key is hydrated. Do not silently resolve setter calls that performed no write.

<ActionPanel>
<Action icon={Icon.Check} onAction={save} shortcut={{ key: "s", modifiers: ["cmd"] }} title="Save Assignments" />
<Action icon={Icon.CheckList} onAction={selectAllFiltered} title="Select All Shown" />
<Action icon={Icon.XMarkCircle} onAction={clearFiltered} title="Clear Selection" />

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🟠 Warning — “Select All Shown” includes projects hidden by search

Rule: CORRECTNESS-001

selectAllFiltered operates only on the workspace-filtered collection; Vicinae applies text search afterward, as the preceding comment acknowledges. Using this action while searching therefore assigns the tag to projects that are not shown.

Suggested resolution: Either make the bulk operation honor the current text search or rename both occurrences of the action to state that it selects every project in the workspace filter, and clarify that search does not limit it.

@clankus-aurelius clankus-aurelius added ai-changes-requested Automated review found blocking issues and removed ai-reviewing Automated extension review is running labels Sep 23, 2026
Fail root workspace reads as incomplete scans so pins survive, queue pre-hydration writes instead of dropping them, and scope bulk select-all naming to the workspace filter.
@clankus-aurelius clankus-aurelius added ai-reviewing Automated extension review is running and removed ai-changes-requested Automated review found blocking issues labels Sep 23, 2026

@clankus-aurelius clankus-aurelius left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

All previously reported issues are resolved by the incremental changes. No new actionable issue was introduced.


Automated extension review passed. A maintainer review is still required.

This is an AI-generated first pass and may be mistaken. If a finding is unclear or incorrect, reply in the relevant thread and mention @aurelleb.

@clankus-aurelius clankus-aurelius added human-reviewable Automated review passed; ready for maintainer review and removed ai-reviewing Automated extension review is running labels Sep 23, 2026
@clankus-aurelius

Copy link
Copy Markdown
Collaborator

@aurelleb automated review passed for 7fff00e; this extension is ready for your review.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

human-reviewable Automated review passed; ready for maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants