Conversation
Add Location takes `access: 'dependent'`, so a service that declares NextExplorer as a dependency can create a location of its own with `sdk.action.run`. For such a caller (`caller` non-null) a location that already exists is a success, since a dependent calls it every time it is configured. The user's path is unchanged. Built against @start9labs/start-sdk 3.0.0 (`caller`, cross-package `action.run` with input); held as a draft until the 3.0.0 fleet sweep. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Location now has
access: 'dependent'. A service that declares NextExplorer as a dependency can create a location of its own by running the action directly (sdk.action.run({ packageId: 'nextexplorer', actionId: 'add-location', input: () => ({ name }) })), with no task for the user to run.The handler reads
caller. For a service caller, a location that already exists is a success (it returnsnull), because a dependent runs this every time it is configured. Every other check still applies: reserved names (_users,personal,share,volumes), a leading dot, a slash. A user running the action sees no change.The first consumer is Paperless-ngx's consume folder: Start9-Community/paperless-startos#11 (Start9-Community/paperless-startos#10).
The change is folded into the unreleased
3.1.0:1(on alpha only, not beta), with one sentence added to its release notes.Draft until the SDK 3.0 sweep lands here
callerand running another package's action with input both ship in@start9labs/start-sdk3.0.0 (Start9Labs/start-technologies#4045, #4069), which needs StartOS 0.4.0.2. This repo's 3.0.0 bump belongs to the fleet sweep's PR, so against 2.0.9 the type-check fails oncaller:Against a local 3.0.0 build, the only error is the sweep's §5
execFailsignature change inimportFromFileBrowser.ts:112, which the bump PR fixes.To finish once the sweep PR is in:
3.1.0:1has reached beta by then, move the version past it, and set Paperless'snextexplorerVersionRangefloor to matchNot exercised on a box.
🤖 Generated with Claude Code