mainsequence 9.0.6.dev36__tar.gz → 9.0.6.dev37__tar.gz

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.
Files changed (101) hide show
  1. {mainsequence-9.0.6.dev36/mainsequence.egg-info → mainsequence-9.0.6.dev37}/PKG-INFO +1 -1
  2. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +79 -0
  3. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37/mainsequence.egg-info}/PKG-INFO +1 -1
  4. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/pyproject.toml +1 -1
  5. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/LICENSE +0 -0
  6. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/README.md +0 -0
  7. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/AGENTS.md +0 -0
  8. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
  9. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  10. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/mainsequence-inference/SKILL.md +0 -0
  11. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
  12. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/metatables_transition/SKILL.md +0 -0
  13. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
  14. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
  15. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -0
  16. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/__init__.py +0 -0
  17. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/__main__.py +0 -0
  18. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/_request_identity.py +0 -0
  19. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/bootstrap.py +0 -0
  20. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/__init__.py +0 -0
  21. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/api.py +0 -0
  22. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/browser_auth.py +0 -0
  23. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/cli.py +0 -0
  24. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/code_repository_status.py +0 -0
  25. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/config.py +0 -0
  26. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/docker_utils.py +0 -0
  27. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/doctor.py +0 -0
  28. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/local_ops.py +0 -0
  29. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/model_filters.py +0 -0
  30. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/pydantic_cli.py +0 -0
  31. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/sdk_utils.py +0 -0
  32. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/ssh_utils.py +0 -0
  33. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/ui.py +0 -0
  34. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/__init__.py +0 -0
  35. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/agent_runtime_models.py +0 -0
  36. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/base.py +0 -0
  37. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/client.py +0 -0
  38. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/compute_validation.py +0 -0
  39. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/exceptions.py +0 -0
  40. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/github_issues.py +0 -0
  41. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/inference.py +0 -0
  42. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_foundry.py +0 -0
  43. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_helpers.py +0 -0
  44. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_user.py +0 -0
  45. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/observability.py +0 -0
  46. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/utils.py +0 -0
  47. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/value_sets.py +0 -0
  48. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_context.py +0 -0
  49. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_skills.py +0 -0
  50. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/defaults.py +0 -0
  51. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/instrumentation/__init__.py +0 -0
  52. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/instrumentation/utils.py +0 -0
  53. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/logconf.py +0 -0
  54. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/repository_identity_security.py +0 -0
  55. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/runtime_flags.py +0 -0
  56. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/scaffold_skills.py +0 -0
  57. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/__init__.py +0 -0
  58. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/caller_assertions.py +0 -0
  59. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/fastapi.py +0 -0
  60. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/SOURCES.txt +0 -0
  61. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/dependency_links.txt +0 -0
  62. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/entry_points.txt +0 -0
  63. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/requires.txt +0 -0
  64. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/top_level.txt +0 -0
  65. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/setup.cfg +0 -0
  66. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_auth_bootstrap.py +0 -0
  67. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_auth_precedence.py +0 -0
  68. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_caller_assertions.py +0 -0
  69. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_canonical_api_route_contract.py +0 -0
  70. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli.py +0 -0
  71. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_auth_contract.py +0 -0
  72. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_browser_auth.py +0 -0
  73. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_secure_storage.py +0 -0
  74. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_client.py +0 -0
  75. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_branch_contract.py +0 -0
  76. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_documentation_contract.py +0 -0
  77. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_runtime_context.py +0 -0
  78. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_skills.py +0 -0
  79. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_dependency_extras.py +0 -0
  80. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_dev_release_version.py +0 -0
  81. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_resource_context.py +0 -0
  82. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_response_contracts.py +0 -0
  83. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_fastapi_request_identity.py +0 -0
  84. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_filter_normalization.py +0 -0
  85. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_github_issues_client.py +0 -0
  86. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_independent_context.py +0 -0
  87. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_inference_client.py +0 -0
  88. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_instrumentation.py +0 -0
  89. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_job_client.py +0 -0
  90. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_local_ops.py +0 -0
  91. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_logconf.py +0 -0
  92. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_models_user_request_bound_auth.py +0 -0
  93. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_notification_uid_contract.py +0 -0
  94. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_observability_client.py +0 -0
  95. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_scaffold_skills.py +0 -0
  96. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_secret_client_model.py +0 -0
  97. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_source_ownership.py +0 -0
  98. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_ssh_utils.py +0 -0
  99. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_tolerant_response_reading.py +0 -0
  100. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_tolerant_value_sets.py +0 -0
  101. {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_user_application_facts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 9.0.6.dev36
3
+ Version: 9.0.6.dev37
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -300,6 +300,85 @@ only the commits CI tagged. Details:
300
300
  Do not call `sync-after-commit` or any backend repair endpoint. The GitHub
301
301
  branch-push webhook owns backend repository reconciliation.
302
302
 
303
+ ### Development Deploys Every Push, Production Deploys Tags
304
+
305
+ A common setup uses two workflow files scoped to Environments. On the
306
+ production branch only the first applies; on the development branch only the
307
+ second:
308
+
309
+ ```yaml
310
+ # .mainsequence/workflows/api-production.yaml
311
+ api_version: "2.3.0"
312
+ name: api-production
313
+ scope:
314
+ environments: [production]
315
+ resources:
316
+ - key: api
317
+ kind: fastapi
318
+ spec:
319
+ source_path: api/main.py
320
+ automatic_deployment: true
321
+ automatic_redeployment:
322
+ enabled: true
323
+ tag_regex: "^v[0-9]+\\.[0-9]+\\.[0-9]+$"
324
+ ```
325
+
326
+ ```yaml
327
+ # .mainsequence/workflows/api-development.yaml
328
+ api_version: "2.3.0"
329
+ name: api-development
330
+ scope:
331
+ environments: [development] # the development Environment's exact name
332
+ resources:
333
+ - key: api
334
+ kind: fastapi
335
+ spec:
336
+ source_path: api/main.py
337
+ automatic_deployment: true
338
+ automatic_redeployment:
339
+ enabled: true
340
+ ```
341
+
342
+ A push to the development branch deploys at once. A merge to `main` deploys
343
+ nothing until a matching tag points at a commit on `main`; with the release job
344
+ above, CI creates that tag after the tests pass. Take the exact fields from the
345
+ branch's workflow template and validate each file through the branch's
346
+ `validate-workflow` action before committing it, as the
347
+ `platform_operations/orchestration_and_releases` skill describes.
348
+
349
+ ### Creating A Release Tag
350
+
351
+ The platform reacts to the tag push, however the tag was made. The short tag
352
+ name must fully match `tag_regex`, and the tagged commit must be on the
353
+ target's branch (its latest commit or an older one).
354
+
355
+ - CI, as in the release job above. This is the recommended path.
356
+ - By hand, only when the user asks for it:
357
+
358
+ ```bash
359
+ git tag v1.3.0 <commit>
360
+ git push origin v1.3.0
361
+ ```
362
+
363
+ Lightweight and annotated tags both work. Push one tag at a time: GitHub
364
+ sends no event when more than three tags are pushed at once, so
365
+ `git push --tags` can deploy nothing.
366
+ - A GitHub Release: publishing a release with a new tag, in the web UI or with
367
+ `gh release create v1.3.0 --target main`, creates the tag, and that tag
368
+ deploys like a pushed one.
369
+
370
+ A tag created with the Actions `GITHUB_TOKEN` starts no other GitHub Actions
371
+ workflow, but it still reaches Main Sequence. Deleting a tag deploys nothing
372
+ and removes nothing. A tag that does not match, or whose commit is only on
373
+ another branch, deploys nothing for that target.
374
+
375
+ ### Going Back To An Older Version
376
+
377
+ Revert the change and release a new version: `git revert <commit>`, raise the
378
+ patch version with `uv version --bump patch`, commit, push, and let CI tag the
379
+ result. The version keeps moving forward and every deployed commit matches its
380
+ tag.
381
+
303
382
  ## Diagnose Partial Completion Before Retrying
304
383
 
305
384
  Never rerun an entire mutating workflow blindly.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 9.0.6.dev36
3
+ Version: 9.0.6.dev37
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence"
7
- version = "9.0.6.dev36"
7
+ version = "9.0.6.dev37"
8
8
  description = "Main Sequence SDK"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"