Skip to content

Factory cannot resolve Linear workflow states from relayfile cloud mount #16

Description

@miyaontherelay

Problem

Running factory without pinned stateIds fails during startup while resolving Linear workflow-state names:

Cannot resolve Linear state names: /linear/states/_index.json is unavailable (missing required scope: fs:read). Deploy the workflow-states resource or pin stateIds (UUIDs) in config.

This blocks the normal config path where factory maps default state names like Ready for Agent, Agent Implementing, In Planning, and Done to Linear state UUIDs dynamically.

What I observed

In RelayfileCloudMountClient, FACTORY_RELAYFILE_SCOPES currently includes Linear issues, GitHub, and Slack, but does not include /linear/states/**:

relayfile:fs:read:/linear/issues/**
relayfile:fs:write:/linear/issues/**
relayfile:fs:read:/github/repos/**
...

When I did a one-off join with relayfile:fs:read:/linear/states/** added, reading /linear/states/_index.json changed from a scope failure to:

RelayFileApiError: not found
status: 404
code: not_found

So there appear to be two layers:

  1. Factory should request read scope for /linear/states/** when it relies on dynamic state-name resolution.
  2. The workflow-states relayfile resource may not be deployed/materialized in relayfile cloud or relayfile-adapters for this workspace.

Temporary workaround

I pinned stateIds in the local factory.config.json using UUIDs observed from synced issue records:

"stateIds": {
  "readyForAgent": "b9bec744-b60c-4745-8022-d90d6ab59ae3",
  "agentImplementing": "39b9881d-1196-4c95-8b80-a20f0c7263f7",
  "inPlanning": "3de351f2-90e6-4731-aa6b-4a55b77f481e",
  "done": "83ea5383-bfe9-425a-86ef-517b8190f09a"
}

After pinning those IDs, factory factory run-once --config ./factory.config.json --dry-run gets past startup and completes.

Expected behavior

A factory config that omits stateIds should be able to resolve state names through relayfile cloud automatically, or fail with a clear ownership/action message if the workspace lacks the required provider resource.

Likely ownership

Factory probably needs the missing /linear/states/** read scope. The remaining 404 not_found likely belongs in relayfile-adapters and/or relayfile-cloud, since the state catalog resource itself is absent even when requested with the correct scope.

Acceptance criteria

  • Factory requests relayfile:fs:read:/linear/states/** when joining a relayfile workspace.
  • /linear/states/_index.json is available for Linear-connected workspaces, or the factory docs/config path clearly describes when stateIds must be pinned.
  • A config without stateIds can start successfully in a workspace with Linear states synced.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions