@gh-symphony/cli 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import {
6
6
  fetchGithubProjectIssueByRepositoryAndNumber,
7
7
  inspectManagedProjectSelection,
8
8
  resolveTrackerAdapter
9
- } from "./chunk-ZGNAAHLD.js";
9
+ } from "./chunk-NRABQNAX.js";
10
10
  import {
11
11
  GitHubApiError,
12
12
  createClient,
@@ -1810,18 +1810,14 @@ var LINEAR_ISSUES_BY_STATES_QUERY = (
1810
1810
  /* GraphQL */
1811
1811
  `
1812
1812
  query SymphonyLinearIssues(
1813
- $projectSlug: String!
1814
- $stateNames: [String!]!
1813
+ $filter: IssueFilter!
1815
1814
  $first: Int!
1816
1815
  $after: String
1817
1816
  ) {
1818
1817
  issues(
1819
1818
  first: $first
1820
1819
  after: $after
1821
- filter: {
1822
- project: { slugId: { eq: $projectSlug } }
1823
- state: { name: { in: $stateNames } }
1824
- }
1820
+ filter: $filter
1825
1821
  ) {
1826
1822
  ${LINEAR_ISSUE_FIELDS}
1827
1823
  }
@@ -1832,18 +1828,14 @@ var LINEAR_ISSUES_BY_IDS_QUERY = (
1832
1828
  /* GraphQL */
1833
1829
  `
1834
1830
  query SymphonyLinearIssueStates(
1835
- $projectSlug: String!
1836
- $issueIds: [ID!]!
1831
+ $filter: IssueFilter!
1837
1832
  $first: Int!
1838
1833
  $after: String
1839
1834
  ) {
1840
1835
  issues(
1841
1836
  first: $first
1842
1837
  after: $after
1843
- filter: {
1844
- project: { slugId: { eq: $projectSlug } }
1845
- id: { in: $issueIds }
1846
- }
1838
+ filter: $filter
1847
1839
  ) {
1848
1840
  ${LINEAR_ISSUE_FIELDS}
1849
1841
  }
@@ -1854,18 +1846,14 @@ var LINEAR_ISSUES_BY_IDENTIFIERS_QUERY = (
1854
1846
  /* GraphQL */
1855
1847
  `
1856
1848
  query SymphonyLinearIssueStatesByIdentifier(
1857
- $projectSlug: String!
1858
- $issueIdentifiers: [String!]!
1849
+ $filter: IssueFilter!
1859
1850
  $first: Int!
1860
1851
  $after: String
1861
1852
  ) {
1862
1853
  issues(
1863
1854
  first: $first
1864
1855
  after: $after
1865
- filter: {
1866
- project: { slugId: { eq: $projectSlug } }
1867
- identifier: { in: $issueIdentifiers }
1868
- }
1856
+ filter: $filter
1869
1857
  ) {
1870
1858
  ${LINEAR_ISSUE_FIELDS}
1871
1859
  }
@@ -1940,6 +1928,7 @@ async function listLinearIssues(project, stateNamesInput, dependencies, issueIds
1940
1928
  stateNames,
1941
1929
  issueIds: issueIds && !issueIds.every(isLinearIdentifier) ? [...issueIds] : void 0,
1942
1930
  issueIdentifiers: issueIds && issueIds.every(isLinearIdentifier) ? issueIds.map((identifier) => identifier.trim().toUpperCase()) : void 0,
1931
+ assignedOnly: config.assignedOnly,
1943
1932
  pageSize: config.pageSize
1944
1933
  });
1945
1934
  const issues = result.nodes.map(
@@ -1951,6 +1940,12 @@ async function listLinearIssues(project, stateNamesInput, dependencies, issueIds
1951
1940
  value: result.rateLimits,
1952
1941
  writable: true
1953
1942
  });
1943
+ if (config.assignedOnly) {
1944
+ emitAssignedOnlyFilterEvent2({
1945
+ projectSlug: config.projectSlug,
1946
+ includedCount: issues.length
1947
+ });
1948
+ }
1954
1949
  return issues;
1955
1950
  }
1956
1951
  async function fetchPaginatedLinearIssues(client, input) {
@@ -1960,8 +1955,7 @@ async function fetchPaginatedLinearIssues(client, input) {
1960
1955
  do {
1961
1956
  const query = input.issueIdentifiers ? LINEAR_ISSUES_BY_IDENTIFIERS_QUERY : input.issueIds ? LINEAR_ISSUES_BY_IDS_QUERY : LINEAR_ISSUES_BY_STATES_QUERY;
1962
1957
  const response = await client(query, {
1963
- projectSlug: input.projectSlug,
1964
- ...input.issueIdentifiers ? { issueIdentifiers: input.issueIdentifiers } : input.issueIds ? { issueIds: input.issueIds } : { stateNames: input.stateNames ?? [] },
1958
+ filter: buildLinearIssueFilter(input),
1965
1959
  first: input.pageSize,
1966
1960
  after
1967
1961
  });
@@ -1975,6 +1969,13 @@ async function fetchPaginatedLinearIssues(client, input) {
1975
1969
  rateLimits: latestRateLimits
1976
1970
  };
1977
1971
  }
1972
+ function buildLinearIssueFilter(input) {
1973
+ return {
1974
+ project: { slugId: { eq: input.projectSlug } },
1975
+ ...input.issueIdentifiers ? { identifier: { in: input.issueIdentifiers } } : input.issueIds ? { id: { in: input.issueIds } } : { state: { name: { in: input.stateNames ?? [] } } },
1976
+ ...input.assignedOnly ? { assignee: { isMe: { eq: true } } } : {}
1977
+ };
1978
+ }
1978
1979
  function isLinearIdentifier(value) {
1979
1980
  const trimmed = value.trim();
1980
1981
  return trimmed === trimmed.toUpperCase() && LINEAR_IDENTIFIER_PATTERN.test(trimmed);
@@ -2097,11 +2098,29 @@ function resolveLinearTrackerConfig(project, dependencies) {
2097
2098
  }
2098
2099
  return {
2099
2100
  endpoint: resolveLinearEndpoint(project.tracker),
2101
+ assignedOnly: resolveAssignedOnly2(project.tracker, dependencies),
2100
2102
  pageSize: readPositiveIntegerSetting(project.tracker, "pageSize") ?? DEFAULT_PAGE_SIZE2,
2101
2103
  projectSlug,
2102
2104
  token
2103
2105
  };
2104
2106
  }
2107
+ var warnedLegacyAssignedOnlyProjectIds2 = /* @__PURE__ */ new Set();
2108
+ function resolveAssignedOnly2(tracker, dependencies) {
2109
+ if (dependencies.assignedOnly !== void 0) {
2110
+ return dependencies.assignedOnly;
2111
+ }
2112
+ const legacyAssignedOnly = readBooleanSetting(tracker, "assignedOnly");
2113
+ if (legacyAssignedOnly) {
2114
+ const warningKey = `${tracker.adapter}:${tracker.bindingId}`;
2115
+ if (!warnedLegacyAssignedOnlyProjectIds2.has(warningKey)) {
2116
+ warnedLegacyAssignedOnlyProjectIds2.add(warningKey);
2117
+ console.warn(
2118
+ "[gh-symphony] Deprecated tracker.settings.assignedOnly detected. Use 'gh-symphony repo start --assigned-only' instead; persisted assignedOnly support will be removed in the next major release."
2119
+ );
2120
+ }
2121
+ }
2122
+ return legacyAssignedOnly;
2123
+ }
2105
2124
  function resolveLinearEndpoint(tracker) {
2106
2125
  return tracker.apiUrl?.trim() || DEFAULT_LINEAR_GRAPHQL_URL2;
2107
2126
  }
@@ -2132,6 +2151,10 @@ function readPositiveIntegerSetting(tracker, key) {
2132
2151
  `Tracker adapter "${tracker.adapter}" requires the "${key}" setting to be a positive integer when provided.`
2133
2152
  );
2134
2153
  }
2154
+ function readBooleanSetting(tracker, key) {
2155
+ const value = tracker.settings?.[key];
2156
+ return value === true || value === "true";
2157
+ }
2135
2158
  function readStringArray(value) {
2136
2159
  if (value === void 0) {
2137
2160
  return void 0;
@@ -2144,6 +2167,18 @@ function readStringArray(value) {
2144
2167
  }
2145
2168
  return value.filter((entry) => typeof entry === "string");
2146
2169
  }
2170
+ function emitAssignedOnlyFilterEvent2(input) {
2171
+ console.info(
2172
+ JSON.stringify({
2173
+ event: "tracker-assigned-only-filtered",
2174
+ tracker: "linear",
2175
+ projectSlug: input.projectSlug,
2176
+ assigneeFilter: "isMe",
2177
+ includedCount: input.includedCount,
2178
+ excludedCount: null
2179
+ })
2180
+ );
2181
+ }
2147
2182
  function requireString(value, label) {
2148
2183
  if (typeof value !== "string" || value.length === 0) {
2149
2184
  throw new Error(`${label} is required.`);
@@ -5,13 +5,13 @@ import {
5
5
  parseIssueReference,
6
6
  readGitHubProjectBinding,
7
7
  renderIssueWorkflowPreview
8
- } from "./chunk-AA3T5AAJ.js";
8
+ } from "./chunk-7Z7WYGDL.js";
9
9
  import "./chunk-PLBG7TZA.js";
10
10
  import {
11
11
  fetchGithubProjectIssueByRepositoryAndNumber,
12
12
  fetchGithubProjectIssues,
13
13
  inspectManagedProjectSelection
14
- } from "./chunk-ZGNAAHLD.js";
14
+ } from "./chunk-NRABQNAX.js";
15
15
  import "./chunk-FAU72YC2.js";
16
16
  import {
17
17
  resolveRuntimeRoot
package/dist/index.js CHANGED
@@ -417,13 +417,13 @@ function createRemovedCommandHandler(message) {
417
417
 
418
418
  // src/index.ts
419
419
  var COMMANDS = {
420
- workflow: () => import("./workflow-ZPERNZJT.js"),
420
+ workflow: () => import("./workflow-7Y6GTV2C.js"),
421
421
  setup: () => import("./setup-KZ3U53PY.js"),
422
- doctor: () => import("./doctor-GIJAH7MA.js"),
423
- upgrade: () => import("./upgrade-K2PNQNWE.js"),
424
- repo: () => import("./repo-LNO3Q3O7.js"),
422
+ doctor: () => import("./doctor-MD4MD6SZ.js"),
423
+ upgrade: () => import("./upgrade-2WPPOUZL.js"),
424
+ repo: () => import("./repo-CK2IDMZF.js"),
425
425
  config: () => import("./config-cmd-AOZVS6GU.js"),
426
- version: () => import("./version-E45DDQPQ.js")
426
+ version: () => import("./version-Z2T42H5M.js")
427
427
  };
428
428
  function addGlobalOptions(command) {
429
429
  return command.option("--config <dir>", "Config directory").addOption(new Option("--config-dir <dir>").hideHelp()).option("-v, --verbose", "Enable verbose output").option("--json", "Output in JSON format").option("--no-color", "Disable color output");
@@ -33,7 +33,7 @@ import {
33
33
  resolveOrchestratorLogLevel,
34
34
  resolveTrackerAdapter,
35
35
  runCli
36
- } from "./chunk-ZGNAAHLD.js";
36
+ } from "./chunk-NRABQNAX.js";
37
37
  import "./chunk-FAU72YC2.js";
38
38
  import {
39
39
  resolveRepoRuntimeRoot,
@@ -16,8 +16,8 @@ function execFileAsync(file, args, execFileImpl = execFileCallback) {
16
16
  });
17
17
  }
18
18
  function resolveCurrentCliVersion() {
19
- if ("0.2.3".length > 0) {
20
- return "0.2.3";
19
+ if ("0.2.4".length > 0) {
20
+ return "0.2.4";
21
21
  }
22
22
  const pkg = JSON.parse(
23
23
  readFileSync(new URL("../../package.json", import.meta.url), "utf8")
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/commands/version.ts
4
4
  var handler = async (_args, options) => {
5
- const version = "0.2.3";
5
+ const version = "0.2.4";
6
6
  if (options.json) {
7
7
  process.stdout.write(JSON.stringify({ version }) + "\n");
8
8
  } else {
@@ -6,9 +6,9 @@ import {
6
6
  resetWorkflowCommandDependenciesForTest,
7
7
  setWorkflowCommandDependenciesForTest,
8
8
  workflow_default
9
- } from "./chunk-AA3T5AAJ.js";
9
+ } from "./chunk-7Z7WYGDL.js";
10
10
  import "./chunk-PLBG7TZA.js";
11
- import "./chunk-ZGNAAHLD.js";
11
+ import "./chunk-NRABQNAX.js";
12
12
  import "./chunk-FAU72YC2.js";
13
13
  import "./chunk-BOM2BYZQ.js";
14
14
  import "./chunk-3SKN5L3I.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gh-symphony/cli",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "license": "MIT",
5
5
  "author": "hojinzs",
6
6
  "description": "Interactive CLI for GitHub Symphony orchestration",
@@ -41,13 +41,13 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "tsup": "^8.5.1",
44
+ "@gh-symphony/control-plane": "0.0.15",
44
45
  "@gh-symphony/core": "0.0.14",
45
- "@gh-symphony/dashboard": "0.0.14",
46
46
  "@gh-symphony/orchestrator": "0.0.14",
47
+ "@gh-symphony/dashboard": "0.0.14",
47
48
  "@gh-symphony/runtime-claude": "0.0.14",
48
49
  "@gh-symphony/worker": "0.0.14",
49
- "@gh-symphony/tracker-github": "0.0.14",
50
- "@gh-symphony/control-plane": "0.0.15"
50
+ "@gh-symphony/tracker-github": "0.0.14"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "tsup",