This repository prefers targeted, maintainable changes over sweeping rewrites. Before editing:
- inspect the relevant module path
- check
git status --short - avoid reverting unrelated local edits
- decide whether the change affects user docs, architecture docs, or release docs
Current product direction should shape implementation choices:
- prioritize triage workflows over passive browsing
- prioritize wasted-resource detection over broader but shallower coverage
- prioritize exact CLI/console pivots over generic debug output
Core development commands:
cargo run
cargo fmt --all
cargo clippy --all-targets -- -D warnings
cargo test --allRelease and packaging commands:
npm run changeset # record a version bump for user-facing changes
make build # local cross-build (macOS + Linux x86_64)
make dist
make checksums
make release-local
make release-helperReleases are automated: a changeset drives the version bump, and merging the
generated version PR builds binaries, publishes the GitHub Release, updates the
Homebrew tap, and publishes to crates.io. The make targets are the local
fallback. See RELEASE.md.
The app relies on:
- AWS credentials resolved by the AWS Rust SDK
~/.seamless-glance/config.jsonfor persisted region selection~/.seamless-glance/config.jsonfor persisted theme selection
Be careful when changing startup behavior because config and AWS region selection all happen very early in process startup.
Most interactive behavior is coordinated from src/app/mod.rs. If a change affects refreshes, selected rows, overlays, or region behavior, inspect that file first.
This is also where cost-savings opportunities are derived from the combination of cached billing insight and live AWS resource data.
The src/aws/ modules generally map AWS responses into model structs that are ready for display. Keep UI formatting concerns out of fetchers where possible, but include enough structure that the UI layer stays simple.
Cost Explorer is a slight exception: richer aggregation in src/aws/cost.rs is intentional so usage-type summaries can be cached and reused by both Cost Overview and Cost Savings.
The app is intentionally keyboard-driven. New behavior should:
- keep shortcuts predictable
- avoid unnecessary modal friction
- surface access errors clearly
- support fast scanability in narrow terminals
- keep navigation metadata centralized so help, command palette, and footer cues do not drift
For roadmap work, also ask:
- does this reduce time-to-triage?
- does this help identify waste or low-value spend?
- does this make the next operator action obvious?
When adding or changing resource actions, prefer this ladder:
- in-app describe for quick context
- AWS CLI command for precise operator handoff
- AWS console pivot for visual follow-up
When adding or changing cost-oriented features, prefer this ladder:
- improve cached factual billing data first
- derive explainable savings heuristics from cost + usage + findings
- surface recommendations in a way that routes back into actionable service screens
Run the strongest checks that fit the change. Minimum expectations:
- docs-only changes: read for consistency and accuracy
- Rust changes:
cargo fmt,cargo clippy, andcargo testwhen feasible - packaging changes: relevant
maketargets - release automation changes:
actionlinton the workflows, plus./scripts/release-helper.sh --skip-build --dry-runand a careful diff review of the generated formula
If you skip a validation step, note why.
Documentation updates are required when behavior changes.
Use this mapping:
- update
README.mdfor user-visible features, controls, setup, or limitations - update
docs/architecture.mdfor module or runtime flow changes - update
AGENTS.mdfor team rules, goals, or agent workflow expectations - update
RELEASE.mdfor shipping, packaging, or distribution process changes
This rule is especially important for:
- adding a new AWS service
- adding or reprioritizing findings
- changing keyboard shortcuts
- changing region or global aggregation behavior
- changing release packaging
Recommended roadmap docs for product planning:
docs/findings-roadmap.mddocs/aws-service-roadmap.mddocs/navigation-strategy.md
- the repo currently has minimal automated test coverage
- the
tests/directory is present but effectively empty - some existing docs can drift if they are not updated alongside code
Contributors should leave the repository a little clearer than they found it, even for small changes.