| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
The index reports everything it holds, so a drawing of a repository carries its workflow files and the indexer's own artefacts next to its own code. A repository or organisation can now name path segments to leave out, and starts from the two that turn up in every repository. Matching is by whole segment, so excluding one directory does not also take a differently named neighbour that begins the same way.
The setting for how many pieces a repository is read in described them as clusters while its own label, and every screen that draws them, called them parts. One word now reaches the reader, and the graph term stays where the data uses it.
…detail A run read a repository in ten parts on twenty thousand characters each, which covered a fraction of a large codebase and gave each part about a third of the evidence a model of this size is usually given. It now reads twenty-five parts on sixty thousand characters. Coverage is the half that matters on a large repository: more evidence per part reads the same fraction more closely, while more parts reach code no run was looking at before. Both ceilings already allowed this, so any repository that wants the older, cheaper shape can still set it. How many proposals and evidence items a stage considers is unchanged at twenty, which is where retrieval practice puts it.
Code Review SummaryThis pull request introduces a new setting to exclude specific path segments from repository drawings and updates default run parameters. The reviewed diff primarily involves a minor stylistic change to string literal quoting in a description. While the functional intent is clear, a small consistency improvement in string formatting is suggested. 💡 Minor Suggestions
|
Sorry, something went wrong.
| excluded_paths: frozenset[str] = field(default_factory=frozenset) | ||
| node_limit: int = MAX_GRAPH_NODES | ||
|
|
||
| def __post_init__(self) -> None: |
There was a problem hiding this comment.
Since excluded_paths is typed as a frozenset but is often populated from JSON-based settings (which return lists) or default tuples, it should be explicitly converted in __post_init__. This ensures type safety and maintains the hashability of the CodeGraphQuery instance, which is critical if it is used in caches or as a dictionary key.
| def __post_init__(self) -> None: | |
| def __post_init__(self) -> None: | |
| if not isinstance(self.excluded_paths, frozenset): | |
| object.__setattr__(self, "excluded_paths", frozenset(self.excluded_paths)) | |
| if not 1 <= self.node_limit <= MAX_GRAPH_NODES: | |
| raise ValueError(f"node_limit must be between 1 and {MAX_GRAPH_NODES}") |
Sorry, something went wrong.
The linter rewrites a string that escapes double quotes into one delimited by single quotes, so the declaration went in unformatted.
| Back | FazBrowse Home | New Git URL |
Adds a setting naming the path segments a repository leaves out of what its index reports, defaulting to .github and .codebase-memory. Drawings of a repository were carrying its workflow files and the indexer's own artefact directory alongside its code.
Matching is by whole segment, so .github does not also take .github-notes. The rule sits beside the existing test-path rule, because every index has to answer it the same way or two of them draw two different repositories.
This is the first setting whose value is a list, and so the first to use the JSON type.
Two defaults move with it. A run read a repository in ten parts on twenty thousand characters each, which covered a fraction of a large codebase and gave each part about a third of the evidence a model of this size is usually given. It now reads twenty-five parts on sixty thousand characters. How many proposals and evidence items a stage considers stays at twenty, which is where retrieval practice puts it. Every repository that has not set its own values gets the larger run, so the cost of a run rises with this.
Also settles a third word. The setting for how many pieces a repository is read in described them as clusters, while its own label and every screen that draws them said parts. The reader now sees one word, and community stays where the data uses it.