refactor: consolidate first-class tools — colocate compile-time and runtime code per tool#290
Conversation
…odules Move compile-time (CompilerExtension) and runtime (Stage 3) code for each tool/runtime into a single directory: - tools/cache_memory/ — extension.rs + execute.rs - tools/azure_devops/ — extension.rs - runtimes/lean/ — extension.rs + mod.rs (config/helpers) Infrastructure extensions (GitHub, SafeOutputs) remain in compile/extensions/ as they are always-on and not user-configured. compile/extensions/mod.rs re-exports tool/runtime extensions from their new colocated homes. Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/3cae398b-84f6-450a-8e39-31f2c20687f3 Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
…thodology Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/3cae398b-84f6-450a-8e39-31f2c20687f3 Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
|
/rust-review |
|
approved |
|
/rust-review |
|
✅ Rust PR Reviewer completed successfully! |
🔍 Rust PR ReviewSummary: Looks good — clean structural refactoring with no functional changes, all tests pass. Findings
|
|
@copilot src/compile/mod.rs:26 — pub use common::MCPG_PORT generates a compiler warning (unused import) because nothing outside the compile module consumes the re-export (callers within the module use super::common::MCPG_PORT directly). This warning is pre-existing and not introduced by this PR, but since you're already touching this file to add the four new ADO_MCP_* re-exports, it's a natural moment to clean it up — either remove the MCPG_PORT re-export if no external consumer needs it, or add #[allow(unused_imports)] with a note explaining it's reserved for future external use. |
MCPG_PORT is only used within the compile module (onees.rs, standalone.rs import via super::common). The pub re-export was generating an unused_imports warning. Agent-Logs-Url: https://github.com/githubnext/ado-aw/sessions/cf879e88-1dcc-48b9-94d4-3d0df7bbaba4 Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
Removed the Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
First-class tools (
tools:front matter) had compile-time and runtime code scattered acrosscompile/extensions/,tools/, andruntimes/with no consistent pattern. Cache memory's compile-time lived in one directory and its Stage 3 runtime in another.New layout
Each tool/runtime owns a single directory containing all of its code:
src/tools/<name>/—extension.rs(CompilerExtension impl) + optionalexecute.rs(Stage 3 runtime)src/runtimes/<name>/—mod.rs(config types/helpers) +extension.rs(CompilerExtension impl)src/compile/extensions/— trait definition,Extensionenum,collect_extensions(), and always-on infra extensions (GitHub, SafeOutputs) that aren't user-configuredFile moves
compile/extensions/cache_memory.rstools/cache_memory/extension.rstools/cache_memory.rstools/cache_memory/execute.rscompile/extensions/azure_devops.rstools/azure_devops/extension.rscompile/extensions/lean.rsruntimes/lean/extension.rsruntimes/lean.rsruntimes/lean/mod.rsWiring
compile/extensions/mod.rsre-exports tool/runtime extension types from their new homes so existing import paths (crate::compile::extensions::CacheMemoryExtension, etc.) continue to work.ADO_MCP_*constants are re-exported fromcompile/mod.rssince the azure-devops extension now lives outside the privatecompile::commonmodule.Docs
AGENTS.md architecture diagram and "Adding New Features" section updated. New "Code Organization Principles" section documents the colocation methodology.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
dev.azure.com/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-beb2180dce8ef554.0ixq20/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/init_tests-49cb495e99e732cb.3608h8sipq36hxu94zkzu7duh.0qhh069.rcgu.o /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-beb2180dce8ef554.0jlbih/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/init_tests-49cb495e99e732cb.3ar2kv94emcaau5up6629u0n2.0qhh069.rcgu.o /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-beb2180dce8ef554.0k7rcs/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/init_tests-49cb495e99e732cb.3eajnfm4bnpmtfrxbgscvtlpm.0qhh069.rcgu.o /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-beb2180dce8ef554.0kwm7w/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/init_tests-49cb495e99e732cb.3iilq4w8mhj2na1l3eehlyh7n.0qhh069.rcgu.o /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-beb2180dce8ef554.0lklpl/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/init_tests-49cb495e99e732cb.3qmayg8wuxe9xp91j7yx6bko8.0qhh069.rcgu.o d.0oo30tlv22o5mbt2bzyaecx62.1l0jmaj.rcgu.o d.0ppm7acpzj9pose041bmuqgpm.1l0jmaj.rcgu.o d.0tviedpuoz1b291l92tcn0dx4.1l0jmaj.rcgu.o d.0vm8jrl97m68uvl00ag7gz1p5.1l0jmaj.rcgu.o d.0ybq5glinpj9818of2ja1npyy.1l0jmaj.rcgu.o d.11ql65wk2qkw8dv87qp088o22.1l0jmaj.rcgu.o d.14722s5epvjae3nn3ylxkucko.1l0jmaj.rcgu.o d.148cy3pq04g1un12o6x1quzon.1l0jmaj.rcgu.o d.17tgrokgra7a7wujk7ooupq97.1l0jmaj.rcgu.o d.17vd3t69cj94hlwno3z871y8p.1l0jmaj.rcgu.o d.18wuz8jn1878w063h8qkflpn2.1l0jmaj.rcgu.o d.1ank73sfegqlunuub7fovwm0g.1l0jmaj.rcgu.o d.1cuken4jbrqqg32ejpkaakkhq.1l0jmaj.rcgu.o d.1j7uup3w3mvzupdpgrflqfbdd.1l0jmaj.rcgu.o(dns block)/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e s/ado_aw-0dd8581remote s/ado_aw-0dd8581get-url s/ado_aw-0dd8581origin s/ad�� s/ado_aw-0dd8581e95bf1852.0td2lgfsmh4fziua58ad057cn.17l5ako.rcgu.o s/ado_aw-0dd8581e95bf1852.0v4gio0nkgr7nr19dc2o05vhr.17l5ako.rcgu.o de/node/bin/cc target/debug/depgit target/debug/depls-files target/debug/dep--exclude-standard target/debug/dep--others targ�� target/debug/deps/rustcVq2Vz3/symbols.o target/debug/deps/ado_aw-0dd8581e95bf1852.00lgh8dwo7wkwfsn7eb7zrd0y.17l5ako.rcgu.o target/debug/deps/ado_aw-0dd8581e95bf1852.02phk1b9kdu9tqq4iumazmebe.17l5ako.rcgu.o target/debug/depcut target/debug/dep-c1 target/debug/deps/ado_aw-0dd8581get-url target/debug/deps/ado_aw-0dd8581origin(dns block)/home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e /home/REDACTED/work/ado-aw/ado-aw/target/debug/deps/ado_aw-d5652daa30dfc52e lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg cfg(docsrs,test) --check-cfg cfg(feature, values()) -C remo��(dns block)If you need me to access, download, or install something from one of these locations, you can either: