feat(install): replace install banner with new graphify logo - #3892
rajarshidattapy wants to merge 1 commit into
Conversation
|
Thanks for the pull request, @rajarshidattapy. A maintainer will review it soon. Want to talk it through while it is in review? Come join us on our Discord server. For longer-form discussion there is also GitHub Discussions. A couple of things that speed up review: make sure the test suite passes on Python 3.10 and 3.13, and that the change keeps extraction deterministic. |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Formal verification. 1 change(s) tested, no difference found (not proven).
Graphify review — findings
Replaces the amber ASCII "brain" install banner with a green ASCII-art graphify wordmark logo, appending the version dimmed after the wordmark baseline. Still TTY-only and swallows all exceptions.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 442 functions depend on the 141 functions this change touches.
Health — this change adds coupling hotspots:
- new:
main()— 98 callers, 3 callees - new:
dispatch_command()— 2 callers, 125 callees - new:
install()— 13 callers, 11 callees - new:
codebuddy_install()— 20 callers, 5 callees - new:
gemini_install()— 11 callers, 7 callees - new:
claude_install()— 19 callers, 4 callees - new:
_copy_skill_file()— 12 callers, 6 callees - new:
claude_uninstall()— 17 callers, 4 callees - …and 15 more — each is listed as a finding
Verification — 442 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 288 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
31 of 304 test file(s) selected (10%) via static blast radius.
tests/test_affected_cli.py— impacttests/test_agents_platform.py— impacttests/test_atomic_version_stamp.py— impacttests/test_claude_md.py— impacttests/test_codebuddy.py— impacttests/test_devin.py— impacttests/test_explain_cli.py— impacttests/test_extract_cli.py— impacttests/test_gemini_hook.py— impacttests/test_global_add_tag_inference.py— impacttests/test_god_nodes_cli.py— impacttests/test_hollow_chunks_arm_shrink_guard.py— impacttests/test_home_sandbox.py— impacttests/test_hook_strict.py— impacttests/test_incomplete_build_guard.py— impacttests/test_install.py— impacttests/test_install_references.py— impacttests/test_install_strings.py— impacttests/test_install_version_warning.py— impacttests/test_merge_chunks_validation.py— impacttests/test_multigraph_diagnostics.py— impacttests/test_no_dedup_flag.py— impacttests/test_path_cli.py— impacttests/test_query_cli.py— impacttests/test_query_induced_edges.py— impacttests/test_read_hook.py— impacttests/test_replace_or_append_section.py— impacttests/test_search_hook.py— impacttests/test_skill_version_warning.py— impacttests/test_uninstall_scope.py— impacttests/test_unverified_semantic_shrink.py— impact
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Formal verification
No difference found (not proven): No behavior difference found in \_print\_banner (not a proof).
The verifier ran both versions of \_print\_banner on many inputs and saw identical behavior every time. Strong evidence the change is safe, but evidence, not a proof.
Guarantee: Empirical: differential testing (both versions run on many generated inputs). A divergence on an untested input remains possible, so this is 'no counterexample found', not 'proven equivalent'.
Note: An input the sampler did not try could still differ.
· 1 grounded finding(s) anchored inline below; 22 more finding(s) on lines outside this diff (see the check run).
| print("\n" + "\n".join(lines) + "\n") | ||
| except Exception: | ||
| pass | ||
| def install(platform: str = "claude", *, project: bool = False, project_dir: Path | None = None) -> None: |
There was a problem hiding this comment.
install()
fans out to 11 callees (efferent coupling); 13 callers depend on it (afferent coupling).
Grounded coupling-delta finding (deterministic), not an LLM guess.
SQL triggers (#3863), Groovy enums (#3861), R namespace-qualified constructors (#3864) and R6 self$/private$ calls (#3865), markdown wikilink index ignore-rules (#3826), foreign manifest key syntax (#3879), tweet oEmbed host-only rewrite (#3880), and the refreshed install banner (#3892). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Shipped in v0.9.71 (now on PyPI) via an authorship-preserving cherry-pick, so your commit keeps contributor-graph credit. Thanks @rajarshidattapy! graphify install now shows the refreshed logo banner. (Note: the widest wordmark lines are ~84 cols incl. indent, so they wrap on an exactly-80-col terminal; a small visual trim would be a nice follow-up.) Release: https://github.com/Graphify-Labs/graphify/releases/tag/v0.9.71 |
What does this PR do?
Replaces the amber brain + pixel-wordmark banner shown by
graphify installwith the new graphify logo (logo mark + wordmark), rendered in green (#118D4F). The version string is still printed, dimmed, next to the wordmark baseline. The rest of the install output is unchanged.The logo art lives in a module-level constant
_BANNER_LOGOingraphify/install.py, and_print_banner()renders it.Type of change
Verification & Invariants
How was this tested?
Environment: Windows 11, PowerShell.
Graphify-specific checklist
uv run python -m tools.skillgen --bless) when changing their source fragments. (N/A, no skill sources changed)