Skip to content

feat: 8 new workers + 3 extended (+77 tools)#1

Merged
zelentsov-dev merged 15 commits intodevelopfrom
feature/new-workers-phases-1-3
Feb 17, 2026
Merged

feat: 8 new workers + 3 extended (+77 tools)#1
zelentsov-dev merged 15 commits intodevelopfrom
feature/new-workers-phases-1-3

Conversation

@zelentsov-dev
Copy link
Owner

Summary

  • +8 new workers: SubscriptionsWorker, OfferCodesWorker, WinBackOffersWorker, ScreenshotsWorker, CustomProductPagesWorker, ProductPageOptimizationWorker, PromotedPurchasesWorker, MetricsWorker
  • +3 extended workers: InAppPurchasesWorker (+5), AnalyticsWorker (+5), AppEventsWorker (+3)
  • +77 tools total (109 → 186), 25 workers (was 17)
  • 345 tests passing in 28 suites

Phase 1 — Monetization (27 tools)

  • subscriptions_* (15) — full subscription CRUD, groups, localizations, prices, submit
  • offer_codes_* (7) — offer code configs, one-time codes, prices
  • winback_* (5) — win-back offers CRUD, prices
  • iap_* extended (+5) — price points, price schedule, review screenshots

Phase 2 — Marketing (37 tools)

  • screenshots_* (12) — screenshot sets, previews, reorder
  • custom_pages_* (10) — custom product pages, versions, localizations
  • ppo_* (9) — A/B experiments, treatments, localizations
  • promoted_* (6) — promoted purchases, images

Phase 3 — Monitoring (13 tools)

  • metrics_* (5) — perf/power metrics, diagnostics
  • analytics_* extended (+5) — reports, instances, segments
  • app_events_* extended (+3) — event localizations CRUD

Test plan

  • swift build succeeds
  • swift test — 345 tests pass
  • Manual MCP testing with real ASC credentials
  • Verify worker filtering (--workers subscriptions,metrics)
  • Spot-check new tools against ASC API docs

Phase 1 (Monetization, 27 tools):
- SubscriptionsWorker (15): subscription CRUD, groups, localizations, prices, submit
- OfferCodesWorker (7): offer code configs, one-time codes, prices
- WinBackOffersWorker (5): win-back offers CRUD, prices
- InAppPurchasesWorker extensions (+5): price points, price schedule, review screenshots

Phase 2 (Marketing, 37 tools):
- ScreenshotsWorker (12): screenshot sets, previews, reorder
- CustomProductPagesWorker (10): custom pages, versions, localizations
- ProductPageOptimizationWorker (9): A/B test experiments, treatments
- PromotedPurchasesWorker (6): promoted purchases, images

Phase 3 (Monitoring, 13 tools):
- MetricsWorker (5): perf/power metrics, diagnostics
- AnalyticsWorker extensions (+5): reports, instances, segments
- AppEventsWorker extensions (+3): event localizations CRUD

Infrastructure: WorkerManager routing, EntryPoint, Application instructions
Tests: 345 tests passing (tool definitions, routing, parameter validation)
…k, custom pages, promoted)

- Metrics: use custom Accept headers (xcode-metrics+json, diagnostic-logs+json)
- Metrics: diagnostics endpoint uses build_id instead of app_id (404 fix)
- PPO: fix list endpoint to /v1/apps/{id}/appStoreVersionExperimentsV2 (403 fix)
- PPO: add required platform parameter to create experiment (409 fix)
- Offer codes: correct enum values, make number_of_periods required
- Win-back: add EligibilityRange type, promotionIntent, prices relationship with included[]
- Custom pages: add included[] with version + localization for create (inline create pattern)
- Promoted: fix path promotionImages -> promotedPurchaseImages
- offer_codes_create: fix enum values (STACK_WITH_INTRO_OFFERS, NEW/EXISTING/EXPIRED), add prices relationship with inline create
- custom_pages_create: remove invalid ${new} self-reference placeholder
- promoted_list_images: fix relationship URL (promotionImages)
- metrics_get_diagnostic_logs: decode callStackTree as string with base64/JSON fallback
- app_info_delete_localization: new DELETE tool for app info localizations (6->7 tools)
…eanup)

- offer_codes_create: add territory relationship in inline prices
- winback_create: territory support, FREE_TRIAL without pricePoint, eligibility validation (2-24)
- custom_pages_create: fix included linkage by adding localizations rel to version
- promoted_list_images: remove non-existent API endpoint (6→5 tools)
- metrics_get_diagnostic_logs: raw JSON parsing for non-standard response format
…s tool

- Add vendorNumber field to Company model (JSON: vendor_number)
- Support ASC_VENDOR_NUMBER / ASC_COMPANY_N_VENDOR_NUMBER env vars
- Make vendor_number optional in sales/financial report tools (fallback to config)
- Add analytics_check_snapshot_status tool for monitoring snapshot readiness
- Pass CompaniesManager to AnalyticsWorker for config-based vendor resolution
Sales and financial reports now return parsed rows, column headers,
and summary stats (units, proceeds, quantities by currency/country)
instead of raw TSV or base64-encoded gzip. Added limit parameter.
…mmaries

- Add filter[version] to salesReports API calls with defaults per report type
- Add summary_only param (default: true) — returns compact summary without raw rows
- Add by_app aggregation to sales summary (units + proceeds per app)
- Add subscription/subscriber/subscription_event specific summaries
- Reduce default row limit from 100 to 25 when summary_only=false
- Enrich tool description with report types, versions, frequencies, workflows
Extract fetchReportSummary from getSalesReport, add getAppSummary
handler that fetches 4 report types in parallel (downloads,
subscriptions, subscription events, revenue) with partial success.
@zelentsov-dev zelentsov-dev merged commit cd1012e into develop Feb 17, 2026
1 check passed
@zelentsov-dev zelentsov-dev deleted the feature/new-workers-phases-1-3 branch February 18, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant