janet-cli 0.2.7__py3-none-any.whl → 0.2.8__py3-none-any.whl

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.
janet/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Janet AI CLI - Sync tickets to local markdown files."""
2
2
 
3
- __version__ = "0.2.7"
3
+ __version__ = "0.2.8"
janet/api/tickets.py CHANGED
@@ -75,6 +75,30 @@ class TicketAPI(APIClient):
75
75
 
76
76
  return response.get("ticket", {})
77
77
 
78
+ def cli_batch_fetch(self, ticket_ids: List[str]) -> List[Dict]:
79
+ """
80
+ Fetch multiple tickets using CLI unlimited endpoint - NO 500 LIMIT.
81
+
82
+ Args:
83
+ ticket_ids: List of ticket IDs (unlimited)
84
+
85
+ Returns:
86
+ List of ticket dictionaries
87
+
88
+ Raises:
89
+ NetworkError: If API request fails
90
+ """
91
+ if not ticket_ids:
92
+ return []
93
+
94
+ data = {"ticket_ids": ticket_ids}
95
+ response = self.post("/api/v1/cli/tickets/batch", data=data, include_org=True)
96
+
97
+ if not response.get("success"):
98
+ raise Exception(response.get("error", "Failed to batch fetch tickets"))
99
+
100
+ return response.get("tickets", [])
101
+
78
102
  def batch_fetch(self, ticket_ids: List[str]) -> List[Dict]:
79
103
  """
80
104
  Fetch multiple tickets in one request.
janet/sync/sync_engine.py CHANGED
@@ -127,11 +127,11 @@ class SyncEngine:
127
127
  # Fetch organization members for name resolution (once per project)
128
128
  org_members = self._fetch_org_members()
129
129
 
130
- # Batch fetch all full ticket details at once
130
+ # Batch fetch all full ticket details using unlimited CLI endpoint
131
131
  ticket_ids = [t.get("id") for t in tickets if t.get("id")]
132
132
 
133
133
  console.print(f" Fetching full details for {len(ticket_ids)} tickets...")
134
- full_tickets_list = self.ticket_api.batch_fetch(ticket_ids)
134
+ full_tickets_list = self.ticket_api.cli_batch_fetch(ticket_ids)
135
135
 
136
136
  # Create lookup map by ticket ID
137
137
  full_tickets_map = {t.get("id"): t for t in full_tickets_list}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janet-cli
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: CLI tool to sync Janet AI tickets to local markdown files
5
5
  Author-email: Janet AI <support@janet-ai.com>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- janet/__init__.py,sha256=jb6cAU08aUnzpl3OLR-fSHtHH6xtbIl7Zg6VzGuHWqY,82
1
+ janet/__init__.py,sha256=sc2hbi8TlF_RuNzeNVGGu5zbrgY4qaOFA03Ohoq_t8s,82
2
2
  janet/__main__.py,sha256=nxsNRykF1aXRRSYNcMvohre4QDfpUzyr5JMyHRHWrwI,130
3
3
  janet/cli.py,sha256=AxjY76l5d7NnsaYEEvUP4dJ1LxXsY1Ya-uNaTGSfXd8,20391
4
4
  janet/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -6,7 +6,7 @@ janet/api/client.py,sha256=fiIpCaQlvXBn_T2VGf0sT9jyQE83Xx7o_WJkCDnwykY,4399
6
6
  janet/api/models.py,sha256=41or0kCcEJ3KJ2QCdV1xbrAoAcma_DteqqVlO0Ng18g,2002
7
7
  janet/api/organizations.py,sha256=abaita6e2drm6RikTOfU-E1ohPeRPhiTYmWRFG0kqaQ,1539
8
8
  janet/api/projects.py,sha256=Oxao4vvXMuXWMfUwZUuBrhkSUtC8t57FNc2d6Qzd5ms,1488
9
- janet/api/tickets.py,sha256=5xdcL1CqXFeuIhnCtQLS2ex-ujbl3j5YBfbHnkX-duM,4125
9
+ janet/api/tickets.py,sha256=Z4b3gyXYVGBQkd7wGStGuI407eASiA2lb50nCwDwlPs,4834
10
10
  janet/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  janet/auth/callback_server.py,sha256=mLkkQMMN6PnNUFf4mlQyY3eKOgK1W6_9O9u90xsLMhY,12499
12
12
  janet/auth/oauth_flow.py,sha256=YaLQVRXyhAvZ3IWkd3AvjQlCkQgRRjhPEU9fXfZBgko,9133
@@ -20,14 +20,14 @@ janet/markdown/yjs_converter.py,sha256=omoT6dZ0K3UIoSun2fczTw56vbTrHomz64no3U0YU
20
20
  janet/sync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  janet/sync/file_manager.py,sha256=fwV0VYP-0ZpwTAyDVqlVUPn3MB2wK6TvFQq450Lhr0I,5839
22
22
  janet/sync/readme_generator.py,sha256=RHfqlr-3oyGIy5zRbMcloAo1rrwy5aSqAvleC49QZME,6847
23
- janet/sync/sync_engine.py,sha256=yI4_ELmqbtfFdDDuxDduScxgVAB4UbYCeK5jkyFVwWI,8861
23
+ janet/sync/sync_engine.py,sha256=7wm_KxyWIeLKKzbke5jOW1X4Cqu2aUP53iTlMVh4OuQ,8886
24
24
  janet/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  janet/utils/console.py,sha256=zMhX4HUXSco-or9KpqBJmYCzmfH_GWtvq-n2Sy6Dfgc,927
26
26
  janet/utils/errors.py,sha256=yxoVDF7ovMT7ooJA-8cvxJK8_3nWumGv7s1n8povi-4,783
27
27
  janet/utils/paths.py,sha256=JYp5gcSEjIbYNJaUcAwdpz6rmta9m0JzoBARC6_AWmM,1706
28
- janet_cli-0.2.7.dist-info/licenses/LICENSE,sha256=wNChlibp2El7r-zfLH8QhOg2oLPAvGwP7ETnVWyNRio,1065
29
- janet_cli-0.2.7.dist-info/METADATA,sha256=Lc0U529jOpavkaC6mL--RzWzCukL6RM2dkCXwFVg2vg,5875
30
- janet_cli-0.2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
- janet_cli-0.2.7.dist-info/entry_points.txt,sha256=MeYUkStK_xcqW3AylPNpQh_H5zmfojB1-d8WMhifkvw,40
32
- janet_cli-0.2.7.dist-info/top_level.txt,sha256=Ux5zWeRoPO3Tu87toTRoiwMkIQNQylV9aRO2g7KqNW4,6
33
- janet_cli-0.2.7.dist-info/RECORD,,
28
+ janet_cli-0.2.8.dist-info/licenses/LICENSE,sha256=wNChlibp2El7r-zfLH8QhOg2oLPAvGwP7ETnVWyNRio,1065
29
+ janet_cli-0.2.8.dist-info/METADATA,sha256=TZVHliuDbU1vplkQ6PkqgJqVbcJnZ1L7gffmIMI6vlM,5875
30
+ janet_cli-0.2.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ janet_cli-0.2.8.dist-info/entry_points.txt,sha256=MeYUkStK_xcqW3AylPNpQh_H5zmfojB1-d8WMhifkvw,40
32
+ janet_cli-0.2.8.dist-info/top_level.txt,sha256=Ux5zWeRoPO3Tu87toTRoiwMkIQNQylV9aRO2g7KqNW4,6
33
+ janet_cli-0.2.8.dist-info/RECORD,,