Terragrunt v1.0.8 - Faster Read Tracking and S3 Virtual Hosting
Terragrunt v1.0.8 arrived on June 10 2026 with performance improvements for large module sources and better support for S3 virtual hosted style URLs. This release also fixes a long standing issue with assume role list attributes and improves how completed experiments are handled during HCL validation.
The full release notes and downloads are on the GitHub release page.
Performance scaling for monorepos
A significant improvement in this release targets the performance of file tracking during module parsing. The project maintains an experimental feature called mark-many-as-read that records every module file marked as read during the parsing phase. In previous versions the bookkeeping for this record scaled quadratically. Every new path added to the record was checked against every path already recorded.
For units with large local module sources or complex monorepo structures this cost became quite high. The overhead was paid again for every unit and every command executed across the repository. In v1.0.8 recording a path now takes constant time regardless of how many paths were previously recorded. Re marking files that are already in the record is also much cheaper now. Users of the find and list commands will see no change in the reported reading lists but should experience faster execution in large scale environments.
AWS S3 and infrastructure fixes
The update addresses two specific issues for engineers working with AWS infrastructure. First the source downloader now supports virtual hosted style S3 URLs. Previously URLs formatted as bucket.s3.region.amazonaws.com were rejected with an error stating that the URL was not a valid S3 URL. Terragrunt now accepts all standard AWS S3 endpoint forms including modern path style URLs and virtual hosted style endpoints.
Second the assume_role attribute handling received a fix for parsing list expressions. When using attributes like transitive_tag_keys or policy_arns in an assume_role block commas inside the lists were incorrectly treated as top level separators. This led to parsing errors during configuration generation. The parser now correctly preserves commas inside nested list and object expressions allowing configurations with array attributes to be processed without failure.
This release also restores Windows console mode on exit. Users running Terragrunt from shells like Nushell on Windows previously found their terminal in a broken state after a command finished. Escape sequences were not being interpreted correctly which broke arrow key navigation. Terragrunt now records the console mode at startup and puts it back when it exits.
Observability and error reporting
Telemetry support in Terragrunt is now more aligned with standard OpenTelemetry practices. In earlier versions the service.name resource attribute was hardcoded to the string terragrunt for every emitted trace and metric. This made it difficult to distinguish between different Terragrunt invocations in a backend without using an intermediate collector to rewrite attributes. The telemetry resource now honors the standard OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES environment variables.
Debugging errors in configurations that use include blocks with the expose attribute is also much easier. Previously Terragrunt would surface low level parsing or conversion errors without indicating which include block or file was at fault. An error like unsuitable value: a bool is required provided very little direction for troubleshooting. The new version annotates these errors with the name of the include block and the path to the parent file being included. It also includes a dotted locator for the failing field such as dependency.outputs.enabled.
Core logic and documentation
This release changes how completed experiments are evaluated. Features that have graduated from experimental status are now treated as permanently enabled rather than being disabled once the experiment period ends. One specific impact is that the filter-flag experiment graduation was causing hcl validate --inputs to stop preparing git worktrees for filter expressions. This is now fixed and git filter expressions work correctly across all supported commands.
Additionally a fix was applied to graph traversal logic. When a graph traversal was combined with another filter the components reached during discovery were sometimes dropped. Terragrunt now checks graph expression targets first to ensure that intersecting a traversal with another filter keeps all reached dependencies and dependents.
Finally every documentation page is now available as clean Markdown by appending .md to the URL. For example the install guide can be fetched as Markdown for use as context in LLMs and AI tooling. This complements the existing llms.txt files by providing smaller and more focused context for specific commands or features.
Where to get it
The v1.0.8 release is available for download on the official project pages.
- The v1.0.8 release page on GitHub
- The main Terragrunt repository
- The tag name is
v1.0.8