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.
- {mainsequence-9.0.6.dev36/mainsequence.egg-info → mainsequence-9.0.6.dev37}/PKG-INFO +1 -1
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +79 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/pyproject.toml +1 -1
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/LICENSE +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/README.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/mainsequence-inference/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/maintenance/metatables_transition/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/__init__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/__main__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/_request_identity.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/bootstrap.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/api.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/cli.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/code_repository_status.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/config.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/ui.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/__init__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/base.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/github_issues.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/inference.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/models_user.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/observability.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/value_sets.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_context.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_skills.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/defaults.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/logconf.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/repository_identity_security.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/__init__.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/caller_assertions.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/fastapi.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/setup.cfg +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_auth_bootstrap.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_auth_precedence.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_caller_assertions.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_auth_contract.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_cli_secure_storage.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_branch_contract.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_documentation_contract.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_runtime_context.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_skills.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_dependency_extras.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_dev_release_version.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_resource_context.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_response_contracts.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_fastapi_request_identity.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_filter_normalization.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_github_issues_client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_independent_context.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_inference_client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_instrumentation.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_job_client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_local_ops.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_logconf.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_observability_client.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_secret_client_model.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_source_ownership.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_ssh_utils.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_tolerant_response_reading.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_tolerant_value_sets.py +0 -0
- {mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_user_application_facts.py +0 -0
|
@@ -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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/cli/code_repository_status.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/agent_runtime_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/client/compute_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_context.py
RENAMED
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/code_repository_skills.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/instrumentation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/repository_identity_security.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence/server/caller_assertions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/mainsequence.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_canonical_api_route_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_branch_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_code_repository_runtime_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_resource_context.py
RENAMED
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_environment_response_contracts.py
RENAMED
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_fastapi_request_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_models_user_request_bound_auth.py
RENAMED
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_notification_uid_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-9.0.6.dev36 → mainsequence-9.0.6.dev37}/tests/test_tolerant_response_reading.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|