Conversation
Greptile SummaryThis PR fills schema gaps: sandbox task fields ( Confidence Score: 5/5Safe to merge — schema-only additions that correctly mirror the Rust types, with positive and negative e2e coverage. All sandbox fields match the Rust No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[schema.ts runs] --> B[Read mise.json base schema]
B --> C[Build taskOnlyProps\ndeny_all/deny_read/deny_write\ndeny_net/deny_env/allow_read\nallow_write/allow_net/allow_env]
B --> D[Read taskProps from task_props def]
D --> E[task_template schema\ntaskProps only\nadditionalProperties: false]
D --> F[task object variant\ntaskProps + taskOnlyProps + extends\nadditionalProperties: false]
F --> G[Write mise.json\nwith env_file/dotenv/env_path deprecated]
E --> G
G --> H[Copy task + task_template defs\nto mise-task.json]
G --> I[Write miserc.json\nrc=true settings only]
Reviews (3): Last reviewed commit: "fix(schema): tighten age directive optio..." | Re-trigger Greptile |
There was a problem hiding this comment.
Code Review
This pull request introduces sandbox-related properties (deny/allow for reads, writes, network, and environment) to tasks and adds new environment configuration options such as env_file, env_path, and redact. It also updates the schema generation script to handle these new task-specific properties. Feedback suggests tightening the age directive schema to match the Rust implementation's nesting requirements and improving the JSON schema structure by including task-specific properties in the common $defs.task_props definition to avoid redundancy.
### 🐛 Bug Fixes - **(docs)** upgrade esbuild to 0.28.0 with es2022 build target by @jdx in [#9047](#9047) - **(env)** skip tools=true module hooks in dependency_env by @jdx in [#9011](#9011) - **(lockfile)** resolve SLSA provenance URLs deterministically for all platforms by @cameronbrill in [#8982](#8982) - **(registry)** test of docuum in registry by @jylenhof in [#8996](#8996) - **(release)** publish extracted mise.exe alongside Windows zip by @zeitlinger in [#8997](#8997) - **(schema)** add missing config fields by @risu729 in [#9044](#9044) - **(task)** support sandbox fields in task templates by @risu729 in [#9046](#9046) - **(tasks)** respect env precedence for task config by @risu729 in [#9039](#9039) - prevent implicit enabling of `self_update` when rustls features are enabled by @salim-b in [#9040](#9040) - allow installing bun and others when downloads folder is on a different mount by @bgeron in [#9032](#9032) ### 📚 Documentation - discourage direnv compatibility PRs and remove issue suggestions by @jdx in [ca78346](ca78346) - tighten direnv compatibility language by @jdx in [ab140c8](ab140c8) - add Tera tip for unsupported version files by @risu729 in [#9048](#9048) ### 📦️ Dependency Updates - update ghcr.io/jdx/mise:deb docker digest to 49fa8a4 by @renovate[bot] in [#8999](#8999) - update ghcr.io/jdx/mise:copr docker digest to 61ba7b6 by @renovate[bot] in [#8998](#8998) - update ghcr.io/jdx/mise:copr docker digest to fa351ff by @renovate[bot] in [#9002](#9002) - update ghcr.io/jdx/mise:alpine docker digest to f3bb475 by @renovate[bot] in [#9001](#9001) - update ghcr.io/jdx/mise:rpm docker digest to d45af2d by @renovate[bot] in [#9005](#9005) - update ghcr.io/jdx/mise:deb docker digest to d7463ac by @renovate[bot] in [#9004](#9004) - update jdx/mise-action digest to 5228313 by @renovate[bot] in [#9007](#9007) - update rust docker digest to e8e2bb5 by @renovate[bot] in [#9008](#9008) - update taiki-e/install-action digest to 97a5807 by @renovate[bot] in [#9010](#9010) - update autofix-ci/action action to v1.3.3 by @renovate[bot] in [#9015](#9015) - update ubuntu:24.04 docker digest to 84e77de by @renovate[bot] in [#9012](#9012) - update actions/checkout action to v4.3.1 by @renovate[bot] in [#9014](#9014) - update ubuntu:26.04 docker digest to cc925e5 by @renovate[bot] in [#9013](#9013) - update rust crate tokio to v1.51.1 by @renovate[bot] in [#9018](#9018) - update rust crate zip to v8.5.1 by @renovate[bot] in [#9019](#9019) - update rust crate ctor to 0.9 by @renovate[bot] in [#9024](#9024) - update ubuntu docker tag to resolute-20260404 by @renovate[bot] in [#9020](#9020) - update dependency vitepress-plugin-tabs to ^0.8.0 by @renovate[bot] in [#9023](#9023) - update rust crate indexmap to v2.14.0 by @renovate[bot] in [#9025](#9025) - update rust crate nix to 0.31 by @renovate[bot] in [#9030](#9030) - update taiki-e/install-action digest to 7a4939c by @renovate[bot] in [#9027](#9027) - update dependency esbuild to v0.28.0 by @renovate[bot] in [#9022](#9022) - update rust crate rand to 0.10 by @renovate[bot] in [#9031](#9031) - update rust crate digest to 0.11.0 by @renovate[bot] in [#9028](#9028) - update rust crate confique to 0.4 by @renovate[bot] in [#9026](#9026) - update rust crate rattler to 0.40 by @renovate[bot] in [#9034](#9034) - lock file maintenance by @renovate[bot] in [#8416](#8416) - disable renovate for aws-config/aws-sdk-* crates by @jdx in [#9052](#9052) - update swatinem/rust-cache digest to e18b497 by @renovate[bot] in [#9009](#9009) ### 📦 Registry - remove broken tool tests by @jdx in [#9017](#9017) - update granted aqua backend repo by @risu729 in [#9033](#9033) - fix atlas-community test expected output by @jdx in [#9054](#9054) ### Chore - use deprecated_at! macro for ubi backend deprecation by @jdx in [#9049](#9049) ### Security - **(ci)** run test-tool inside Docker container by @jdx in [#9055](#9055) - **(ci)** avoid exposing MISE_GH_TOKEN to test-tool scripts by @jdx in [#9053](#9053) ### New Contributors - @bgeron made their first contribution in [#9032](#9032) - @salim-b made their first contribution in [#9040](#9040) ## 📦 Aqua Registry Updates #### Updated Packages (2) - [`cloudnative-pg/cloudnative-pg/kubectl-cnpg`](https://github.com/cloudnative-pg/cloudnative-pg/kubectl-cnpg) - [`gleam-lang/gleam`](https://github.com/gleam-lang/gleam)
Summary
env_file/dotenv/env_pathschema entries and mark them deprecated as legacy shortcuts[tasks.*]but do not leak into[task_templates.*], whose Rust type does not deserialize/apply themContext
task_templateschemas fromtask_props. The newtaskOnlyPropsoverlay is for fields accepted byTaskbut notTaskTemplate; this mirrors the existing task-only treatment forextends.env_file,dotenv, andenv_pathare still accepted by current serde parsing, but they are legacy top-level shortcuts. env: usemise.file/mise.pathconfig #1361 markedenv_file/env_pathdeprecated in favor ofenv.mise.file/env.mise.path; env: resolve env vars in order #1519 later rewrote env parsing and kept acceptingenv_file, aliasdotenv, andenv_pathwithout a runtime deprecation warning. The schema keeps them valid but marks them deprecated to point users at[env] _.file/_.path.allow_envwildcard semantics were later expanded in feat(sandbox): support wildcard patterns in allow_env #8974.EnvDirectiveOptionson age values, were introduced in feat(age): support age encrypted env vars in mise.toml files #6463. This PR now mirrors the Rust variants more closely: top-level age options are allowed withage = "...", while complexage = { value = ... }options must be nested inside theageobject.Verification
bun xtasks/render/schema.tsjq empty schema/mise.json schema/mise-task.json schema/miserc.jsongit diff --checkmise run test:e2e e2e/config/test_schema_tombi