Dirty Notification

Why does Klipper not provide a notification that a 3D printer is running modified or untracked files?

If, after having added my first unsupported extra, a notification had presented saying something to the effect of ‘Printer is utilizing untracked or modified files, support will be limited if accessible at all. Please see here, The "dirty" Flag and the Team's Position ‘, there is a reasonable chance I would have reverted immediately to remain mainline.

The ‘dirty’ flag is obscure.

If the goal is to make Klipper ‘more approachable’ this will direct new users, that may have added an extra innocently and ignorantly, to the information necessary to encourage that they remain ‘pristine’.

Something like….

def _check_git_vers
	if git_vers.endswith '-dirty':
		raise error("Printer is utilizing untracked or modified files, support will be limited if accessible at all. Please see here, https://klipper.discourse.group/t/the-dirty-flag-and-the-teams-position/22753)

As I converse with myself, I can only speculate that one may answer the question with ‘because that is not necessary or useful’. With which, I wholeheartedly disagree.

Assume a new user, having no experience with 3D printing or coding, purchases a printer running Klipper because someone recommended it and they think 3D printing will be fun. After stumbling through basic setup and tuning procedures, they’re off and printing. As they grow more comfortable with their printer they explore ‘upgrades’ and find something they believe to be useful. They learn how to SSH, follow a script, copy and paste config settings and voilà!, they’ve ‘upgraded’. Unbeknownst to the our Klipper novice, a tag is added to their git version that they don’t notice, let alone know the meaning behind. They continue printing, explore other ‘upgrades’, add a few more, maybe with small hardware modifications/additions, maybe not. Doesn’t really matter for this short rhetorical narrative.
Suddenly and seemingly out of nowhere an issue presents and they cannot print well, or at all. Now for the first time they are in need of direct, specific assistance. They find Klipper discourse and join, learn how to ask for help, create a topic and are met with, ‘please recreate in pristine Klipper, see here ‘Dirty explanation link’’. Of course, knowing only how to SSH and follow scripts, they do their best to uninstall. But their best is lacking, something goes wrong, they brick their printer.

It’s a shame, if only they had noticed the word dirty, known what it meant and reversed a single action, this all might have been avoided…

The Klipper learned may assert such an experience a prime example of why one should ‘RTFM’(Read The Fine Manual).

The less than learned are met with documentation comparable to novels, daunting and esoteric through and through.

I’d be in favor of making the dirty installations a bit more obvious to users so they aren’t as confused when we mention it on this forum.

One thing I’d be worried about is that on systems that are perpetually dirty out of necessity (e.g. for an MMU), the little notification indicator in Mainsail/Fluidd would get old quickly and could cause someone to miss important notifications like needing to update MCU firmware. To avoid this, maybe there could be a setting to disable the warning in printer.cfg so that primarily those who know exactly what they’re doing could disable it.

It seems to me this should be handled at the web UI level not by Klipper.

If it’s easier to implement there, great!

However I would argue that git version is not a concern for the UI, to which it is irrelevant what version of Klipper is running.

It is Klipper that concerns itself with git versions and therefore should be Klipper’s responsibility.

Because Klipper is not designed, or meant, to cater to the novice experience.

While anyone may use Klipper and be new to 3D printing and/or new to Klipper. It is best to not be both.

I’ve answered the question in order to mark this solved. Though I do not consider this a thorough answer as it implies that the only to benefit from such a change would be the novice, which I consider inaccurate.