fix(test_sandbox): redirect session logs to tests/artifacts via autouse fixture
Per FR1 of test_sandbox_hardening_20260619 spec, all writes must be under <project_root>/tests/. Tests that create an AppController + call init_state() trigger session_logger.open_session() at src/session_logger.py:85 which writes to paths.get_logs_dir() - by default logs/ at project root, outside tests/. This was triggered by tests/test_context_composition_decoupled.py and surfaced in the latest batched test run. Add a function-scoped autouse fixture in tests/conftest.py that monkeypatches src.paths.get_logs_dir to return a per-run tests/-allowed path. Per-run subdirectory prevents log_registry.toml collisions across test runs. Skips test_paths.py, test_test_sandbox.py, and test_app_controller_offloading.py which directly assert on paths.get_logs_dir() behavior or set up their own session via tmp_session_dir (overriding get_logs_dir at the module level breaks those tests' assertions). No production code is modified.
This commit is contained in:
Generated
+67
-63
@@ -5,13 +5,13 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/plugin": "1.14.18"
|
"@opencode-ai/plugin": "1.17.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz",
|
||||||
"integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==",
|
"integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz",
|
||||||
"integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==",
|
"integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -35,9 +35,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz",
|
||||||
"integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==",
|
"integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -48,9 +48,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz",
|
||||||
"integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==",
|
"integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -61,9 +61,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz",
|
||||||
"integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==",
|
"integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -74,9 +74,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
|
"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz",
|
||||||
"integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==",
|
"integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -87,32 +87,36 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@opencode-ai/plugin": {
|
"node_modules/@opencode-ai/plugin": {
|
||||||
"version": "1.14.18",
|
"version": "1.17.8",
|
||||||
"resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.14.18.tgz",
|
"resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.17.8.tgz",
|
||||||
"integrity": "sha512-oF1U7Aipz8A93WGllrwxYugopeL4ml/zd6ywoFIyuF2gbvEhOGFomAvqt1E5YjLN0wEL8nCPwFine3l7pqgNUA==",
|
"integrity": "sha512-pkmnYQz5d+xf0h6fAjgplSSJKLqgYKOXr+x6y40GRPdW+/IfndFkMGq7CDsG2SieGD84qv4zYDMyolGo06IMpw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/sdk": "1.14.18",
|
"@opencode-ai/sdk": "1.17.8",
|
||||||
"effect": "4.0.0-beta.48",
|
"effect": "4.0.0-beta.74",
|
||||||
"zod": "4.1.8"
|
"zod": "4.1.8"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@opentui/core": ">=0.1.100",
|
"@opentui/core": ">=0.3.4",
|
||||||
"@opentui/solid": ">=0.1.100"
|
"@opentui/keymap": ">=0.3.4",
|
||||||
|
"@opentui/solid": ">=0.3.4"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@opentui/core": {
|
"@opentui/core": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"@opentui/keymap": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"@opentui/solid": {
|
"@opentui/solid": {
|
||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@opencode-ai/sdk": {
|
"node_modules/@opencode-ai/sdk": {
|
||||||
"version": "1.14.18",
|
"version": "1.17.8",
|
||||||
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.14.18.tgz",
|
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.17.8.tgz",
|
||||||
"integrity": "sha512-E0QiiB+9rv/TPH0a1GunKl6LnuXDRHDiJaIFHOPaBL364rQx+3ClHwHkz78/KBsjhjeLrC2CaLgK+CoxV/XUIQ==",
|
"integrity": "sha512-6MKmsj2ujZyL44jy+12dpwWYDYKPS9fUr+0wVQxaIlPYQ/eAt8T8T3QrybplJ5ZtHfZUX+esXZ02x2UYYm7oEw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cross-spawn": "7.0.6"
|
"cross-spawn": "7.0.6"
|
||||||
@@ -149,27 +153,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/effect": {
|
"node_modules/effect": {
|
||||||
"version": "4.0.0-beta.48",
|
"version": "4.0.0-beta.74",
|
||||||
"resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.48.tgz",
|
"resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.74.tgz",
|
||||||
"integrity": "sha512-MMAM/ZabuNdNmgXiin+BAanQXK7qM8mlt7nfXDoJ/Gn9V8i89JlCq+2N0AiWmqFLXjGLA0u3FjiOjSOYQk5uMw==",
|
"integrity": "sha512-Yx+Kh12U+i2FmjwEfKs+ePFmpMd43RPD1oGqc/VraSS9bYzvF0Ff3PojwEFEVEewp8xc92Uxu28gTspU4qyvHA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@standard-schema/spec": "^1.1.0",
|
"@standard-schema/spec": "^1.1.0",
|
||||||
"fast-check": "^4.6.0",
|
"fast-check": "^4.8.0",
|
||||||
"find-my-way-ts": "^0.1.6",
|
"find-my-way-ts": "^0.1.6",
|
||||||
"ini": "^6.0.0",
|
"ini": "^7.0.0",
|
||||||
"kubernetes-types": "^1.30.0",
|
"kubernetes-types": "^1.30.0",
|
||||||
"msgpackr": "^1.11.9",
|
"msgpackr": "^2.0.1",
|
||||||
"multipasta": "^0.2.7",
|
"multipasta": "^0.2.7",
|
||||||
"toml": "^4.1.1",
|
"toml": "^4.1.1",
|
||||||
"uuid": "^13.0.0",
|
"uuid": "^14.0.0",
|
||||||
"yaml": "^2.8.3"
|
"yaml": "^2.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fast-check": {
|
"node_modules/fast-check": {
|
||||||
"version": "4.7.0",
|
"version": "4.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.8.0.tgz",
|
||||||
"integrity": "sha512-NsZRtqvSSoCP0HbNjUD+r1JH8zqZalyp6gLY9e7OYs7NK9b6AHOs2baBFeBG7bVNsuoukh89x2Yg3rPsul8ziQ==",
|
"integrity": "sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
@@ -195,12 +199,12 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/ini": {
|
"node_modules/ini": {
|
||||||
"version": "6.0.0",
|
"version": "7.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/ini/-/ini-7.0.0.tgz",
|
||||||
"integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==",
|
"integrity": "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^20.17.0 || >=22.9.0"
|
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/isexe": {
|
"node_modules/isexe": {
|
||||||
@@ -216,18 +220,18 @@
|
|||||||
"license": "Apache-2.0"
|
"license": "Apache-2.0"
|
||||||
},
|
},
|
||||||
"node_modules/msgpackr": {
|
"node_modules/msgpackr": {
|
||||||
"version": "1.11.12",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.12.tgz",
|
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.4.tgz",
|
||||||
"integrity": "sha512-RBdJ1Un7yGlXWajrkxcSa93nvQ0w4zBf60c0yYv7YtBelP8H2FA7XsfBbMHtXKXUMUxH7zV3Zuozh+kUQWhHvg==",
|
"integrity": "sha512-o1C5KRmuRt+apqMr1HuGSqWStZoRBUpEsCsl15uM9VdAF1qHLtvMOU2En747EnTyEl6c4pzPewRMFF31s1CNbA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"msgpackr-extract": "^3.0.2"
|
"msgpackr-extract": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/msgpackr-extract": {
|
"node_modules/msgpackr-extract": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz",
|
||||||
"integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==",
|
"integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
@@ -238,12 +242,12 @@
|
|||||||
"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
|
"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3",
|
"@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4",
|
||||||
"@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3",
|
"@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4",
|
||||||
"@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3",
|
"@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4",
|
||||||
"@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3",
|
"@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4",
|
||||||
"@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3",
|
"@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4",
|
||||||
"@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3"
|
"@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/multipasta": {
|
"node_modules/multipasta": {
|
||||||
@@ -323,9 +327,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/uuid": {
|
"node_modules/uuid": {
|
||||||
"version": "13.0.1",
|
"version": "14.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz",
|
||||||
"integrity": "sha512-9ezox2roIft6ExBVTVqibSd5dc5/47Sw/uY6b4SjQUT2TzQ0tltNquWA46y4xPQmdZYqvnio22SgWd41M86+jw==",
|
"integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==",
|
||||||
"funding": [
|
"funding": [
|
||||||
"https://github.com/sponsors/broofa",
|
"https://github.com/sponsors/broofa",
|
||||||
"https://github.com/sponsors/ctavan"
|
"https://github.com/sponsors/ctavan"
|
||||||
@@ -351,9 +355,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
"version": "2.8.4",
|
"version": "2.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
|
||||||
"integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
|
"integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"yaml": "bin.mjs"
|
"yaml": "bin.mjs"
|
||||||
|
|||||||
+16
-16
@@ -17,7 +17,7 @@ paths = [
|
|||||||
"C:/projects/gencpp/.ai/gencpp_sloppy.toml",
|
"C:/projects/gencpp/.ai/gencpp_sloppy.toml",
|
||||||
"C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml",
|
"C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml",
|
||||||
]
|
]
|
||||||
active = "C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml"
|
active = "project.toml"
|
||||||
|
|
||||||
[gui]
|
[gui]
|
||||||
separate_message_panel = false
|
separate_message_panel = false
|
||||||
@@ -70,6 +70,21 @@ scale = 1.0
|
|||||||
transparency = 1.0
|
transparency = 1.0
|
||||||
child_transparency = 1.0
|
child_transparency = 1.0
|
||||||
|
|
||||||
|
[theme.tone_mapping.moss]
|
||||||
|
brightness = 0.7699999809265137
|
||||||
|
contrast = 0.8700000047683716
|
||||||
|
gamma = 1.0
|
||||||
|
|
||||||
|
[theme.tone_mapping.solarized_light]
|
||||||
|
brightness = 0.6899999976158142
|
||||||
|
contrast = 0.8600000143051147
|
||||||
|
gamma = 0.7699999809265137
|
||||||
|
|
||||||
|
[theme.tone_mapping.Binks]
|
||||||
|
brightness = 0.47999998927116394
|
||||||
|
contrast = 0.8399999737739563
|
||||||
|
gamma = 2.2100000381469727
|
||||||
|
|
||||||
[theme.tone_mapping."Solarized Light"]
|
[theme.tone_mapping."Solarized Light"]
|
||||||
brightness = 0.5600000023841858
|
brightness = 0.5600000023841858
|
||||||
contrast = 0.8600000143051147
|
contrast = 0.8600000143051147
|
||||||
@@ -80,21 +95,6 @@ brightness = 0.7699999809265137
|
|||||||
contrast = 0.7200000286102295
|
contrast = 0.7200000286102295
|
||||||
gamma = 0.6899999976158142
|
gamma = 0.6899999976158142
|
||||||
|
|
||||||
[theme.tone_mapping.moss]
|
|
||||||
brightness = 0.7699999809265137
|
|
||||||
contrast = 0.8700000047683716
|
|
||||||
gamma = 1.0
|
|
||||||
|
|
||||||
[theme.tone_mapping.Binks]
|
|
||||||
brightness = 0.47999998927116394
|
|
||||||
contrast = 0.8399999737739563
|
|
||||||
gamma = 2.2100000381469727
|
|
||||||
|
|
||||||
[theme.tone_mapping.solarized_light]
|
|
||||||
brightness = 0.6899999976158142
|
|
||||||
contrast = 0.8600000143051147
|
|
||||||
gamma = 0.7699999809265137
|
|
||||||
|
|
||||||
[mma]
|
[mma]
|
||||||
max_workers = 4
|
max_workers = 4
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ Collapsed=0
|
|||||||
DockId=0x00000001,4
|
DockId=0x00000001,4
|
||||||
|
|
||||||
[Window][Response]
|
[Window][Response]
|
||||||
Pos=1137,28
|
Pos=1146,28
|
||||||
Size=529,1172
|
Size=534,1172
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,0
|
DockId=0x00000002,0
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ Collapsed=0
|
|||||||
|
|
||||||
[Window][Diagnostics]
|
[Window][Diagnostics]
|
||||||
Pos=34,28
|
Pos=34,28
|
||||||
Size=1101,1172
|
Size=1110,1172
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000001,2
|
DockId=0x00000001,2
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ DockId=0x0000000D,0
|
|||||||
|
|
||||||
[Window][Discussion Hub]
|
[Window][Discussion Hub]
|
||||||
Pos=34,28
|
Pos=34,28
|
||||||
Size=1101,1172
|
Size=1110,1172
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000001,0
|
DockId=0x00000001,0
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ DockId=0x00000001,2
|
|||||||
|
|
||||||
[Window][Log Management]
|
[Window][Log Management]
|
||||||
Pos=34,28
|
Pos=34,28
|
||||||
Size=1101,1172
|
Size=1110,1172
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000001,1
|
DockId=0x00000001,1
|
||||||
|
|
||||||
@@ -923,7 +923,7 @@ Column 2 Width=70
|
|||||||
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
||||||
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
||||||
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
||||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=1666,1172 Split=X
|
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=1680,1172 Split=X
|
||||||
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
|
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
|
||||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
||||||
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=820,1681 Split=Y Selected=0x3F1379AF
|
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=820,1681 Split=Y Selected=0x3F1379AF
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
|
view_presets = []
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "project"
|
name = "project"
|
||||||
git_dir = ""
|
git_dir = ""
|
||||||
system_prompt = ""
|
system_prompt = ""
|
||||||
execution_mode = "native"
|
execution_mode = "native"
|
||||||
|
word_wrap = true
|
||||||
|
auto_scroll_comms = true
|
||||||
|
auto_scroll_tool_calls = true
|
||||||
|
|
||||||
[output]
|
[output]
|
||||||
output_dir = "./md_gen"
|
output_dir = "./md_gen"
|
||||||
@@ -52,8 +57,47 @@ set_file_slice = false
|
|||||||
py_update_definition = false
|
py_update_definition = false
|
||||||
py_set_signature = false
|
py_set_signature = false
|
||||||
py_set_var_declaration = false
|
py_set_var_declaration = false
|
||||||
|
edit_file = true
|
||||||
|
py_remove_def = true
|
||||||
|
py_add_def = true
|
||||||
|
py_move_def = true
|
||||||
|
py_region_wrap = true
|
||||||
|
ts_c_get_skeleton = true
|
||||||
|
ts_cpp_get_skeleton = true
|
||||||
|
ts_c_get_code_outline = true
|
||||||
|
ts_cpp_get_code_outline = true
|
||||||
|
ts_c_get_definition = true
|
||||||
|
ts_cpp_get_definition = true
|
||||||
|
ts_c_get_signature = true
|
||||||
|
ts_cpp_get_signature = true
|
||||||
|
ts_c_update_definition = true
|
||||||
|
ts_cpp_update_definition = true
|
||||||
|
derive_code_path = true
|
||||||
|
bd_create = true
|
||||||
|
bd_update = true
|
||||||
|
bd_list = true
|
||||||
|
bd_ready = true
|
||||||
|
|
||||||
[mma]
|
[mma]
|
||||||
epic = ""
|
epic = ""
|
||||||
active_track_id = ""
|
active_track_id = ""
|
||||||
tracks = []
|
tracks = []
|
||||||
|
|
||||||
|
[mma.tier_models."Tier 1"]
|
||||||
|
model = "gemini-3.1-pro-preview"
|
||||||
|
provider = "gemini"
|
||||||
|
|
||||||
|
[mma.tier_models."Tier 2"]
|
||||||
|
model = "gemini-3-flash-preview"
|
||||||
|
provider = "gemini"
|
||||||
|
|
||||||
|
[mma.tier_models."Tier 3"]
|
||||||
|
model = "gemini-2.5-flash-lite"
|
||||||
|
provider = "gemini"
|
||||||
|
|
||||||
|
[mma.tier_models."Tier 4"]
|
||||||
|
model = "gemini-2.5-flash-lite"
|
||||||
|
provider = "gemini"
|
||||||
|
|
||||||
|
[conductor]
|
||||||
|
dir = "conductor"
|
||||||
|
|||||||
@@ -6,8 +6,12 @@ roles = [
|
|||||||
"Context",
|
"Context",
|
||||||
]
|
]
|
||||||
active = "main"
|
active = "main"
|
||||||
|
auto_add = false
|
||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-06-19T01:17:10"
|
last_updated = "2026-06-20T13:39:31"
|
||||||
history = []
|
history = []
|
||||||
|
context_snapshot = []
|
||||||
|
sent_markdown = ""
|
||||||
|
sent_system_prompt = ""
|
||||||
|
|||||||
@@ -432,6 +432,40 @@ def reset_paths() -> Generator[None, None, None]:
|
|||||||
from src import paths
|
from src import paths
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def _redirect_session_logs_to_tests_dir(monkeypatch, request) -> Generator[None, None, None]:
|
||||||
|
"""
|
||||||
|
Redirect session_logger output to tests/artifacts/ so the FR1 sandbox audit
|
||||||
|
allows the writes. Per conductor/code_styleguides/test_sandbox.md, all writes
|
||||||
|
must be under <project_root>/tests/. The session_logger writes to
|
||||||
|
paths.get_logs_dir() which defaults to logs/ at project root. Tests that
|
||||||
|
create an AppController + call init_state() trigger session_logger.open_session()
|
||||||
|
at src/session_logger.py:85 which would otherwise hit TEST_SANDBOX_VIOLATION.
|
||||||
|
|
||||||
|
Monkeypatches src.paths.get_logs_dir to return a per-run tests/-allowed path.
|
||||||
|
Per-run subdirectory prevents log_registry.toml collisions across test runs.
|
||||||
|
pytest's monkeypatch fixture auto-restores the original after each test.
|
||||||
|
|
||||||
|
Skips tests that explicitly test the paths module or have their own session
|
||||||
|
setup via tmp_session_dir (those tests call paths.get_logs_dir() directly or
|
||||||
|
set up the session via env var, and overriding get_logs_dir at the module
|
||||||
|
level breaks their assertions).
|
||||||
|
[C: src/session_logger.py:open_session, tests/conftest.py:_sandbox_audit_hook]
|
||||||
|
"""
|
||||||
|
test_file = str(request.node.fspath)
|
||||||
|
if any(name in test_file for name in (
|
||||||
|
"test_paths.py",
|
||||||
|
"test_test_sandbox.py",
|
||||||
|
"test_app_controller_offloading.py",
|
||||||
|
)):
|
||||||
|
yield
|
||||||
|
return
|
||||||
|
from src import paths as paths_module
|
||||||
|
test_logs_dir = Path("tests/artifacts/_test_session_logs") / f"run_{_RUN_ID}"
|
||||||
|
test_logs_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
monkeypatch.setattr(paths_module, "get_logs_dir", lambda: test_logs_dir)
|
||||||
|
yield
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def reset_ai_client() -> Generator[None, None, None]:
|
def reset_ai_client() -> Generator[None, None, None]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user