Release v1.25.0 — Custom MOTD & Gravity Help #48

Merged
Mike Bros merged 17 commits from release/1.25.0 into master 2026-03-04 07:44:57 +00:00
Collaborator

Release v1.25.0 — Custom MOTD & Gravity Help

Changes

  • OP#1937: Initialize version branch from develop
  • OP#1919: Cherry-pick OMZ community aliases into shell configs (5 SP)
  • OP#1938: Write motd script with system stats section (3 SP)
  • OP#1939: Add manifest pre-flight checker to motd (3 SP)
  • OP#1940: Add tips section and zsh hook with debounce (2 SP)
  • OP#1941: Add motd script to manifest and test (2 SP)
  • OP#1943: Implement alias and function parser for gravity (3 SP)
  • OP#1944: Implement skill and nvim command indexer for gravity (2 SP)
  • OP#1942: Write gravity shell function with fzf integration (3 SP)
  • OP#1945: Add gravity to manifest configs and test (2 SP)

Total: 26 SP across 10 tasks

Highlights

Custom MOTD — Catppuccin-themed system dashboard replacing Ubuntu's default MOTD. Shows real-time weather (open-meteo API, background fetch), system stats from /proc, pending updates/security alerts, manifest dependency checker with dynamic grid layout, language versions, internal service links, and quick-start tips. Performance optimized to ~0.6s with batched dpkg-query, /proc reads, and background weather. Debounced to 5-minute intervals via zsh hook.

Gravity Help — Fuzzy-searchable command reference (gravity) that indexes shell aliases, functions, Claude skills, and Neovim commands. Uses fzf with ANSI-colored preview pane. Sourced via .zshrc.

OMZ Aliases — Full Oh My Zsh-standard git alias set (80+ aliases) with cross-shell compatibility (.zsh_aliases + .bash_aliases). Includes Claude Code shortcuts, eza replacements, Docker helpers, and navigation aliases.

Checklist

  • All version tasks closed in Gravity PM
  • Version file matches Gravity PM version (manifest.json → 1.25.0)
  • All commits pushed
  • MOTD tested on live system (weather, alerts, packages, layout verified)

References

Version: 1.25.0 (Gravity PM)
Epics: OP#1917 (Custom MOTD), OP#1918 (Gravity Help)

## Release v1.25.0 — Custom MOTD & Gravity Help ### Changes - OP#1937: Initialize version branch from develop - OP#1919: Cherry-pick OMZ community aliases into shell configs (5 SP) - OP#1938: Write motd script with system stats section (3 SP) - OP#1939: Add manifest pre-flight checker to motd (3 SP) - OP#1940: Add tips section and zsh hook with debounce (2 SP) - OP#1941: Add motd script to manifest and test (2 SP) - OP#1943: Implement alias and function parser for gravity (3 SP) - OP#1944: Implement skill and nvim command indexer for gravity (2 SP) - OP#1942: Write gravity shell function with fzf integration (3 SP) - OP#1945: Add gravity to manifest configs and test (2 SP) **Total: 26 SP across 10 tasks** ### Highlights **Custom MOTD** — Catppuccin-themed system dashboard replacing Ubuntu's default MOTD. Shows real-time weather (open-meteo API, background fetch), system stats from /proc, pending updates/security alerts, manifest dependency checker with dynamic grid layout, language versions, internal service links, and quick-start tips. Performance optimized to ~0.6s with batched dpkg-query, /proc reads, and background weather. Debounced to 5-minute intervals via zsh hook. **Gravity Help** — Fuzzy-searchable command reference (`gravity`) that indexes shell aliases, functions, Claude skills, and Neovim commands. Uses fzf with ANSI-colored preview pane. Sourced via .zshrc. **OMZ Aliases** — Full Oh My Zsh-standard git alias set (80+ aliases) with cross-shell compatibility (.zsh_aliases + .bash_aliases). Includes Claude Code shortcuts, eza replacements, Docker helpers, and navigation aliases. ### Checklist - [x] All version tasks closed in Gravity PM - [x] Version file matches Gravity PM version (manifest.json → 1.25.0) - [x] All commits pushed - [x] MOTD tested on live system (weather, alerts, packages, layout verified) ### References Version: 1.25.0 (Gravity PM) Epics: OP#1917 (Custom MOTD), OP#1918 (Gravity Help)
Closes OP#1937

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add OMZ-standard git aliases (status, diff, branch, stash, rebase,
merge, reset, restore, pull, push) with helper functions
git_main_branch() and git_current_branch(). Resolve conflicts:
gs→gst, gcm→gcmsg (gcm now checks out main), gl→glog (gl now
pulls), gu dropped (use gl), dr→dcrs. Add dils for docker image ls.
Zsh-only amend aliases (gca!, gc!) excluded from bash file.
Update nvim shortcuts (ngs→gst, ngu→gl).

Closes OP#1919

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Standalone motd script using Catppuccin Macchiato true-color palette.
Displays hostname, OS, uptime, CPU load, RAM, disk usage, and
weather via wttr.in with 2s timeout. Placeholder functions for
manifest checker and tips sections (next tasks).

Closes OP#1938

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement print_manifest() that reads manifest.json and checks
install status of apt packages, cargo binaries, custom tools,
and languages. Multi-column layout with green checkmarks and
red x markers. Handles missing manifest.json gracefully.

Closes OP#1939

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement print_tips() with curated quick-start commands (gravity,
aliases, motd). Add _motd_debounce() hook to .zshrc that shows
motd on every new shell but suppresses repeats within 5 minutes.
Checks motd binary exists before invoking.

Closes OP#1940

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add configs/motd → ~/.local/bin/motd entry to manifest.json
so gravity sync deploys the motd script automatically.

Closes OP#1941

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create configs/gravity.sh with _gravity_aliases() that parses
.zsh_aliases using awk. Extracts alias names, commands, ## comment
descriptions, and section headers into TSV format for fzf.
Handles both single-quoted and double-quoted alias definitions,
and function() declarations. Placeholder stubs for remaining
helpers (skills, nvim, fzf integration).

Closes OP#1943

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add _gravity_skills() that parses SKILL.md frontmatter description
fields from ~/.claude/skills/*/. Falls back to first content line
after title if no frontmatter. Add _gravity_nvim_commands() with
hardcoded gravity.nvim commands. Both output TSV for fzf.

Closes OP#1944

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add gravity() function that collects all entries from aliases,
nvim commands, and skills, pipes through column for alignment,
then into fzf with ANSI preview pane showing name, description,
category, and source. Supports pre-filtered query via argument.
Graceful fallback when fzf is not installed.

Closes OP#1942

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add gravity.sh to manifest.json (→ ~/.local/share/gravity/gravity.sh).
Source from .zshrc after aliases. Add gravity() stub to alias files
so the `aliases` command displays it. Real function from gravity.sh
overrides the stub at runtime.

Closes OP#1945

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
chore(release): bump version to 1.25.0
All checks were successful
PR Validation / validate-branch (pull_request) Successful in 2s
CI / security (pull_request) Successful in 5s
CI / manifest (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 10s
CI / json-check (pull_request) Successful in 10s
PR Validation / validate-release-pr (pull_request) Successful in 3s
CI / sast (pull_request) Successful in 1m34s
dfc94898f1
Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(motd): add system alerts and internal service links
All checks were successful
PR Validation / validate-branch (pull_request) Successful in 1s
CI / security (pull_request) Successful in 5s
CI / json-check (pull_request) Successful in 7s
CI / manifest (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 8s
PR Validation / validate-release-pr (pull_request) Successful in 4s
CI / sast (pull_request) Successful in 34s
d9d23d92be
Replace default Ubuntu MOTD with custom sections:
- Alerts: available updates, security updates, reboot required
- Services: Forgejo, OpenProject, Wiki, Docs links
- Suppress "0 updates" noise

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix(motd): align package columns and update service links
All checks were successful
CI / json-check (pull_request) Successful in 4s
PR Validation / validate-branch (pull_request) Successful in 1s
CI / manifest (pull_request) Successful in 4s
CI / security (pull_request) Successful in 8s
CI / lua-check (pull_request) Successful in 9s
PR Validation / validate-release-pr (pull_request) Successful in 4s
CI / sast (pull_request) Successful in 1m0s
2769d983ac
Widen column format to 16 chars to accommodate build-essential.
Replace wiki/docs links with dockge and dockhand services.

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(motd): rewrite with weather, dynamic layout, and performance optimization
All checks were successful
PR Validation / validate-branch (pull_request) Successful in 1s
CI / security (pull_request) Successful in 5s
CI / manifest (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 8s
CI / json-check (pull_request) Successful in 9s
PR Validation / validate-release-pr (pull_request) Successful in 3s
CI / sast (pull_request) Successful in 35s
c08ddfa561
- Add real-time weather via open-meteo.com API (background fetch, <1s total)
- Per-column dynamic widths in package/language grids
- Dynamic divider lengths matching content width
- Reorder sections: Stats → Alerts → Packages → Languages → Services → Quick Start
- Add bootstrap hint when packages are missing
- Fold weather into stats section
- Batch dpkg-query and /proc reads for performance
- Hardcode Minneapolis coordinates for weather

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix(aliases): remove gravity stub that clobbered real function
All checks were successful
CI / json-check (pull_request) Successful in 4s
PR Validation / validate-branch (pull_request) Successful in 1s
CI / manifest (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 7s
CI / security (pull_request) Successful in 8s
PR Validation / validate-release-pr (pull_request) Successful in 47s
CI / sast (pull_request) Successful in 2m0s
bf9463d78a
The gravity() { :; } stub in alias files was sourced after gravity.sh,
overwriting the real fzf-based implementation. Removed the stub entirely
since MOTD Quick Start already advertises the command. Also updated
bootstrap hint to use natural language prompt instead of nonexistent
/bootstrap skill.

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(aliases): add @hidden section filtering for aliases and gravity
All checks were successful
PR Validation / validate-branch (pull_request) Successful in 1s
CI / json-check (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 8s
CI / manifest (pull_request) Successful in 4s
CI / security (pull_request) Successful in 8s
PR Validation / validate-release-pr (pull_request) Successful in 3s
CI / sast (pull_request) Successful in 33s
7182ba7664
Sections with @hidden in the comment header are excluded from both
the `aliases` command and gravity fuzzy search. Hidden by default:
file headers, "Color support for grep", "Git helpers (OMZ-compatible)".

Also fixes bootstrap hint in motd (no /bootstrap skill exists).

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(gravity): replace SKILL.md parser with static skills index
All checks were successful
PR Validation / validate-branch (pull_request) Successful in 1s
CI / security (pull_request) Successful in 4s
CI / json-check (pull_request) Successful in 7s
CI / manifest (pull_request) Successful in 4s
CI / lua-check (pull_request) Successful in 8s
PR Validation / validate-release-pr (pull_request) Successful in 4s
CI / sast (pull_request) Successful in 33s
1fa53aea24
The SKILL.md parser was fragile — picking up subdirectories like domain/,
leaking debug output, and producing paragraph-length descriptions. Replace
with a simple TSV index file (gravity-skills.tsv) that maps skill names
to their trigger commands and short descriptions. Add to manifest for
bootstrap deployment.

Refs OP#1946

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mike Bros approved these changes 2026-03-04 07:44:33 +00:00
Mike Bros merged commit c481e845f4 into master 2026-03-04 07:44:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mike/kickstart.nvim!48
No description provided.