Skip to content

Conversation

@nielsenko
Copy link
Collaborator

@nielsenko nielsenko commented Jan 23, 2026

Description

Adds debugging functionality to PathTrie for diagnosing routing issues:

  • paths getter - Returns all registered path patterns as Iterable<String>
  • toString() override - Quick text dump of all paths
  • toDot() method - DOT graph output for Graphviz visualization, with cycles from self-attachment shown as dashed red edges

All methods handle cycles created by self-attachment.

Related Issues

Pre-Launch Checklist

  • This update focuses on a single feature or bug fix.
  • I have read and followed the Dart Style Guide and formatted the code using dart format.
  • I have referenced at least one issue this PR fixes or is related to.
  • I have updated/added relevant documentation (doc comments with ///), ensuring consistency with existing project documentation.
  • I have added new tests to verify the changes.
  • All existing and new tests pass successfully.
  • I have documented any breaking changes below.

Breaking Changes

  • No breaking changes.

- Add ignore paths for examples, benchmark, and doc directories
- Split coverage upload into separate steps with flags for each package
- Associate each lcov.info file with its corresponding package flag
Adds the ability to enumerate and visualize all registered paths in a PathTrie
for debugging routing issues.

- Add `paths` getter that returns an Iterable<String> of all registered paths
- Add `toString()` override for quick debugging output
- Add `toDot()` method for DOT graph visualization (Graphviz compatible)
- Use cycle detection to handle recursive attachment scenarios
- Paths are returned in deterministic order (literals sorted, then dynamic)

Closes serverpod#319
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 23, 2026

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nielsenko nielsenko changed the title feat dump trie feat: Add paths getter, toString, and toDot to PathTrie for debugging Jan 23, 2026
@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.31%. Comparing base (196eef7) to head (1e4279d).

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #320       +/-   ##
===========================================
+ Coverage   27.95%   91.31%   +63.36%     
===========================================
  Files          87       97       +10     
  Lines        3291     3777      +486     
  Branches     1735     1929      +194     
===========================================
+ Hits          920     3449     +2529     
+ Misses       2371      328     -2043     
Flag Coverage Δ
relic_core 91.06% <100.00%> (?)
relic_io 93.27% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nielsenko nielsenko mentioned this pull request Jan 23, 2026
1 task
@nielsenko nielsenko self-assigned this Jan 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dump all paths in PathTrie

1 participant