Repository navigation
Bump globals from 16.0.0 to 16.1.0 - #5
Closed
dependabot[bot] wants to merge 1 commit into
Closed
dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [globals](https://github.com/sindresorhus/globals) from 16.0.0 to 16.1.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v16.0.0...v16.1.0) --- updated-dependencies: - dependency-name: globals dependency-version: 16.1.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
✅ Deploy Preview for regal-bunny-0c8efe ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Contributor
Author
|
Looks like globals is up-to-date now, so this is no longer needed. |
LucasSantana-Dev
added a commit
that referenced
this pull request
May 15, 2026
Anchors: Stripe Dashboard (asymmetric KPI weight), Linear (dense command list). Fixes named anti-patterns #4 (hero-metric template) and #5 (identical card grid). - KPI row: lead hero card (Total Members, text-5xl) + stepped-down compact rows for Active/Total Cases and Auto-Mod Actions, replacing the 4-equal StatTile template. - Quick Actions: single surface-panel with divide-y rows (icon + title + desc + hover-reveal chevron) replacing 7 identical ActionPanel cards. - Drop em-dash placeholder in track playedBy; show 'Unknown' instead. - Add CompactStat inline component (right-column metric rows).
3 tasks
LucasSantana-Dev
added a commit
that referenced
this pull request
May 23, 2026
ServersPage: Notion workspace switcher anchored layout (asymmetric emphasis primary server + secondary grid), dark-first palette, no identical card grid (#5), footer empty state. Login: Linear signin pattern (single-column, minimal decoration, brand-visible, one strong CTA), dark-first, no glassmorphism (#6), Discord OAuth button clear, badge list vertical (not 3-column grid). Locked tokens: Sora display, Manrope body, JetBrains Mono mono; brand #ec4899; dark surfaces; surface-panel utility throughout. All colors from Lucky palette. Anti-patterns fixed: #5 (identical card grid), #6 (glassmorphism), #9 (em dashes), #10 (default shadows), #11 (Inter default), #16 (generic CTAs), #17 (platitudes). Register: consumer-saas (workspace picker / signin funnel). Anchors: ServersPage (Notion switcher + Linear workspace picker); Login (Linear signin + Vercel signin). TypeScript: clean. Slop audit: clean (zero hard-ban violations).
LucasSantana-Dev
added a commit
that referenced
this pull request
Sep 27, 2026
#2401) Closes #2392 Closes #2390 ## What Phase P2a of `decisions/2026-09-26-lucky-owned-observability-stack.md` (sections 1, 4, 5). Code only, nothing deployed anywhere. - `observability/` directory: Prometheus config (scrapes bot `:9091` and backend `/metrics`, 30d/5GB retention), the moved + fixed alert rules (`lucky-alerts.rules.yml`), new `disk.rules.yml` (disk-free warn/critical + the always-firing `Watchdog` rule), and full Grafana provisioning (datasource, `Lucky ops` starter dashboard, alerting: `email-primary` and `watchdog-offbox` contact points, notification policy routing `Watchdog` to the off-box contact with a 1m repeat). - `docker-compose.yml`: `prometheus`, `grafana`, `node-exporter` services under the `observability` profile, pinned images, explicit `mem_limit`s (512m/256m/64m), no host ports, named volumes, host root mounted read-only into node-exporter. - Heartbeat (#2390) consolidated into one implementation (`packages/shared/src/utils/monitoring/heartbeat.ts`), used by both bot and backend. The bot passes an `isReady` gate (client.isReady()); the backend has none and pings unconditionally. Env vars renamed to `HEARTBEAT_PING_URL` / `HEARTBEAT_PING_URL_EXTERNAL` / `HEARTBEAT_INTERVAL_MS`, same names on both services, declared in `docker-compose.yml`. The bot's separate `HeartbeatService` is removed. - `monitoring/README.md` trimmed: Layer 3 now points at `observability/`; Layers 1-2 stay as reference. `monitoring/prometheus/` removed (content moved via `git mv`). ## Alerting choice Grafana-managed alerting, not a separate Alertmanager: fewer containers, Grafana is already the single pane per the ADR, and vanilla OSS Prometheus has no ruler write API for Grafana to manage its native rule files directly. Prometheus still loads `observability/prometheus/rules/*.yml` (so `promtool`/`/api/v1/rules` and a future Alertmanager/Mimir migration still work) but those evaluations are inert for delivery; the rules that actually notify are the Grafana-managed copies in `observability/grafana/provisioning/alerting/rules.yaml`, querying the same PromQL by hand. Full writeup in `observability/README.md`. ## P2a friction log (gate: more than 3 means stop and revisit before P2b) 1. Compose interpolates every service's env vars at parse time regardless of active profile; a `:?` (required) on the new Grafana vars broke plain `docker compose up` even without the `observability` profile. Fixed with `:-` defaults instead. 2. The `lucky-resource-pressure` rule group (moved from `monitoring/`) needs cAdvisor, which P2a does not deploy; those four rules stay defined but are dormant until cAdvisor is added. 3. Vanilla Prometheus has no ruler API, forcing the same alert logic to be hand-duplicated between Prometheus-native rules and Grafana-managed ones (see "Alerting choice" above). 4. Unverified assumption: Grafana's `${VAR}` provisioning-file env expansion for the two contact points. Not verified against a running container this session (see #5); flagged for runtime verification. 5. Local-environment-only, not the platform's fault: this session's colima Docker install had a corrupted containerd store, blocking `docker run` for a `promtool` container check. Filed separately as #2400. Worked around with `promtool` from Homebrew; `promtool check config`/`check rules` both passed against the files directly. 4 of 5 are platform-relevant (#5 is local tooling only), which crosses the ADR's "more than 3" threshold. Flagging for the operator to weigh before committing further to P2b; nothing here blocks the prototype itself (config and rule checks both pass). ## Verification - `docker compose config -q` (no profile) and `docker compose --profile observability config -q`: both pass, dummy env vars only, no `.env*` read. - `promtool check config` / `promtool check rules`: both pass (via Homebrew `promtool`, since local Docker could not run containers, see #2400). - All YAML/JSON files in `observability/` parse cleanly. - `npx tsc -b` (shared), `npx tsc --noEmit` (bot, backend): clean. - `eslint -c eslint.config.js` on changed non-test `.ts` files: no issues. - `packages/shared/src/utils/monitoring/heartbeat.spec.ts`: 6/6 pass (added tests for the `isReady` gate and the never-throws contract). - `packages/bot/src/bot/start/initializer.spec.ts`: 40/40 pass. - Full `packages/shared` suite: 79 suites / 1523 tests pass. ## Not done / not in scope - Nothing was deployed to the homelab or any remote host. No containers were started outside local `docker compose config` validation. - Grafana's env-var expansion for contact points is unverified at runtime (friction #4). - cAdvisor and the resource-pressure alerts it feeds are not part of P2a. <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a file-provisioned Prometheus/Grafana stack as an opt-in Compose profile and consolidates the heartbeat into one shared implementation. Code only; nothing is deployed. Closes #2392 and #2390. **Observability stack** - New `observability/` profile runs `prometheus`, `alertmanager`, `grafana`, `node-exporter`, and `cadvisor` with pinned images, memory limits, and no host ports. - Alert rules live only in Prometheus (`observability/prometheus/rules/*.yml`); Alertmanager owns routing and delivery, so Grafana is dashboards-only with no alerting of its own. - Adds the always-firing `Watchdog` rule routed to an off-box webhook and new disk-free warn/critical rules; cAdvisor now feeds the moved `lucky-resource-pressure` rules, which previously had no data source. - Alertmanager's config is rendered by a one-shot `envsubst` service; the SMTP password and Watchdog URL use Alertmanager `_file` options fed by Compose secrets so no secret lands in plain text. - Adds two pt-BR Grafana dashboards for a non-PromQL operator: a home dashboard with a question→where-to-look table and a full system-health dashboard whose thresholds match the alert rules. **Heartbeat** - Replaces the bot's `HeartbeatService` with the shared `startHeartbeat`/`stopHeartbeat`, used by both bot and backend. - Env vars renamed to `HEARTBEAT_PING_URL` / `HEARTBEAT_PING_URL_EXTERNAL` / `HEARTBEAT_INTERVAL_MS`, with per-service source vars (`_BOT` / `_BACKEND`) so a URL-keyed external monitor can tell them apart; each resolves through per-service → shared `HEARTBEAT_*` → legacy `HEALTHCHECK_*`, so an unconfigured var never silently disables the heartbeat for un-migrated deployments. - The bot passes an `isReady` gate so a disconnected gateway goes silent; the backend pings unconditionally. <sup>Written for commit 30c3e5d. Summary will update on new commits.</sup> <a href="https://cubic.dev/pr/LucasSantana-Dev/Lucky/pull/2401?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps globals from 16.0.0 to 16.1.0.
Release notes
Sourced from globals's releases.
Commits
a1d29d416.1.05c58875Update globals (#293)498071cReplaceexecawithnano-spawn(#295)082c583FixexcludeBuiltins(#292)3fd937fFix update script (#289)cb1fb33Update dependencies (#288)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)