feat(pending): app_name field and date-sharded pending storage

- Add optional app_name to PendingSubmission and prepare_submit_job,
  passed through PrepareSubmitJobRequest for user-provided tracking.
- Rewrite PendingStore to shard records by UTC date under
  data/pending_jobs/YYYY-MM-DD.json instead of a single monolithic
  pending_jobs.json.
- Legacy single-file pending_jobs.json remains readable; first save()
  migrates it and renames the old file to avoid double reads.
- Tests cover date sharding, multi-date list, legacy read, legacy
  migration, and app_name round-trip.
This commit is contained in:
Claude
2026-06-26 14:36:24 +08:00
parent c44e9bcc55
commit da9ba657f3
7 changed files with 163 additions and 35 deletions
+4
View File
@@ -33,6 +33,10 @@ class SaveConnectionRequest(BaseModel):
class PrepareSubmitJobRequest(BaseModel):
connection: str
app_name: str | None = Field(
default=None,
description="Optional human-readable application name for tracking the pending submission.",
)
script_path: str = Field(
...,
description=(