Update logging and enhance .gitignore for Atlas directory

- Introduced a logging system using `tracing` and related crates to improve log management and output formatting.
- Updated `.gitignore` to include the `.atlas/` directory, ensuring that log files and other generated content are not tracked by Git.
- Enhanced project templates to include the new `.gitignore` settings for Atlas in various project types.

These changes aim to improve logging capabilities and maintain a cleaner repository by ignoring unnecessary files.
This commit is contained in:
Joe 2026-03-01 13:16:00 -06:00
parent b5583c4c1b
commit 3fd50df0b2
29 changed files with 1463 additions and 79 deletions

View file

@ -320,7 +320,7 @@ in all 3 matchers, simply randomize the order of the children - this will break
can we allow the terminal to stay so i can like run some git commands myself without having to make a whole new terminal?
[mcp]
* sync
* DONE: sync
- add modes:
- standard (default): what we currently have where if there are changes it waits for the user to act
- manual: user must always interact
@ -330,7 +330,7 @@ can we allow the terminal to stay so i can like run some git commands myself wit
- allow the agent to specify patches it wants to accept automatically
- for sciprts, need to include a hash of the file ON roblox studio currently to signify there wasn't MORE new changes in the mid-term
- for properties, just include what we are accepting
* get_script PATH [from draft?]
* DONE: get_script PATH [from draft?]
- allows the agent to read a script currently on studio
- the core purpose of this endpoint is to utilize with sync when failures occur due to other people changing things, and then allow us to grab their changes, compare against the previous git version we have and then integrate their changes and then sending another sync with the expected hash of the file on roblox to allow it to auto-accept (via an mcp override we specify in the json of the request to sync)
- by default directly reads the Source property on the script
@ -341,14 +341,14 @@ can we allow the terminal to stay so i can like run some git commands myself wit
- we should steal this system fully: D:\UserGenerated\studio-rust-mcp-server\plugin\Utils\Paths.luau
- in the sync feedback it gives, we should include Paths.GetRelativePath so the agent is able to find it via the read_script ALONGSIDE the current info we can give so it can also find it on the Atlas filesystem
- investigate this further, because i just want to give the agent the best possible way to query roblox instances, and also atlas instances on the filesystem. if using this Paths module is an overstep and we can accomplish it with a fully atlas-based approach, that's fine - aslong as it works CONSISTENTLY and is simple.
* port all of the basic MCP endpoints offered via https://github.com/Roblox/studio-rust-mcp-server
* DONE: port all of the basic MCP endpoints offered via https://github.com/Roblox/studio-rust-mcp-server
- integrate them into how we've done our mcp in atlas
- make sure to handle the placeid filtering like we already do when establishing the connection
- we've done some actual fixes over at D:\UserGenerated\studio-rust-mcp-server on these, we should probably pull those fixed versions! we don't need that whole studio selection system from over there, though.
- we don't need to restructure ours to be like this, but i like the .md doc setup.
* add logging for all agent connect/disconnects in the terminal
* DONE: add logging for all agent connect/disconnects in the terminal
- also add logging for commands (including the json) it runs and the resulting json. try to keep this on one line please, json compact.
* ensure all mcp route documentation is well formed and gives the agent knowledge on how to use this system to the fullest.
* DONE: ensure all mcp route documentation is well formed and gives the agent knowledge on how to use this system to the fullest.
- I did .md based docs over with my D:\UserGenerated\studio-rust-mcp-server codebase, we should probably switch to this as it's cleaner
- Instruct on good sync flow, with get_script merging.
- If user requests get_script and we havn't sync'd yet, just do a dryrun sync to get the instance id map going.
@ -357,7 +357,8 @@ can we allow the terminal to stay so i can like run some git commands myself wit
- ensure this doesn't interrupt the connection of the mcp, since i think we shutdown the api? we should just not shutdown the api or something
[logging]
* I want to add verbose logging .atlas in the repository
* I want to add verbose logging .atlas in the directory being synced from
- Need to add to project template .gitignore for .atlas/
* We should do rolling logs, and it should compress them automatically
* Will the existing logging infra take care of this?
* I want to have it include trace logging
@ -370,7 +371,6 @@ can we allow the terminal to stay so i can like run some git commands myself wit
- Listen to MessageOut to get the log info we are wanting.
- Is this actually the one we want? I might be confused, check the docs, this looks new.
* The goal with these trace logging is so that when others are using this tool, we can actually debug real issues by having them send me their logs.
* It might be worth actually having a log entry per-sync?
[sync]
right now sync is running REALLY slow