Skip to content

Add hardware realignment and recoverable storage accounting - #64

Open
Llewellynvdm wants to merge 7 commits into
mainfrom
feat/hardware-realignment
Open

Llewellynvdm wants to merge 7 commits into
mainfrom
feat/hardware-realignment

Conversation

@Llewellynvdm

@Llewellynvdm Llewellynvdm commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Hardware allocation existed for runtime endpoints, but operators lacked a read-only review and controlled apply workflow. The storage sampler also discarded every unfinished scan at its 75-second deadline, while independent alert paths repeatedly notified and could report recovery during another failed attempt.

Release-Version: 3.3.0

Merge order: #61 (3.2.11), #63 (3.2.12), then this PR. This branch includes both dependency fixes to keep that sequence conflict-free.

Changes:

  • Add getbible resources realign and menu controls: effective CPU/RAM, filesystem headroom, setting ownership, current/proposed allocation, capacity/cleanup evidence, and explicit apply with stale-plan checks, live overlap admission, dry-run protection and honest partial results.
  • Preserve deployment-owned caps and explicit endpoint policies; offer a conservative native memory recommendation, with an explicit override for shared hosts. Apply uses normal runtime readiness, reload and drain transactions for changed domains.
  • Resume storage scans in bounded slices with disk-backed queues and inode accounting. Preserve completed accounting on interruption/error, expose progress, and coordinate the complete-scan horizon with admission freshness.
  • Retain published storage reservations until a complete later scan accounts for their data, preventing sequential publications from reusing unaccounted headroom. Failed export cleanup also retains a committed charge until its remaining files are accounted for.
  • Share durable service incidents between OnFailure and telemetry: correct unit names, actual failure details, bounded reminders, and recovery based on newer successful execution plus completed fresh storage accounting.
  • Document commands, configuration ownership, scan freshness and operating limits. Telemetry reclamation remains conservative; already ingested spools are not blindly deleted or hidden by a larger allowance.

Validation:

  • 81 focused storage, static-publication, service-alert and resource tests passed locally; resource CLI regressions, ShellCheck and Python dependency compatibility passed.
  • CI passed on Python 3.12, 3.13 and 3.14, including lint, unit, CLI and nginx/Gunicorn/SSH integration tests.
  • Native production-systemd acceptance passed on Ubuntu 24.04 and 26.04. It directly verifies reviewed hardware allocation, actual memory ceilings, continued readiness, preserved nginx master, and a no-op second application.
  • Docker upgrade acceptance passed on amd64 and arm64, including offline deployment, hardware alignment, actual runtime settings, no-op repeat and container recreation.
  • Dependency security, Dashboard and release-version checks passed.
  • The full local Python run exercised 551 tests with one existing /proc process-identity limitation; that limitation also affects two local image/upgrade CLI fixtures. The corresponding complete CI matrix passed on GitHub.

No production server configuration has been changed.

dependabot Bot and others added 7 commits October 12, 2026 20:18
Bumps the dashboard-versions group in /src/apps/dashboard/ui with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 8.3.3 to 8.3.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dashboard-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the python-versions group with 7 updates in the /src/apps/mcp directory:

| Package | From | To |
| --- | --- | --- |
| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `2.2.0` | `2.3.0` |
| [mcp-types](https://github.com/modelcontextprotocol/python-sdk) | `2.2.0` | `2.3.0` |
| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.45.0` | `1.45.1` |
| [pycparser](https://github.com/eliben/pycparser) | `3.0` | `3.11` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.13.5` | `2.14.1` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.50.1` |
| [truststore](https://github.com/sethmlarson/truststore) | `0.10.4` | `0.10.5` |



Updates `mcp` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v2.2.0...v2.3.0)

Updates `mcp-types` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](modelcontextprotocol/python-sdk@v2.2.0...v2.3.0)

Updates `opentelemetry-api` from 1.45.0 to 1.45.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-python@v1.45.0...v1.45.1)

Updates `pycparser` from 3.0 to 3.11
- [Release notes](https://github.com/eliben/pycparser/releases)
- [Commits](eliben/pycparser@release_v3.00...release_v3.11)

Updates `pydantic` from 2.13.5 to 2.14.1
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](pydantic/pydantic@v2.13.5...v2.14.1)

Updates `pydantic-core` from 2.46.5 to 2.50.1
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](pydantic/pydantic@core-v2.46.5...core-v2.50.1)

Updates `truststore` from 0.10.4 to 0.10.5
- [Release notes](https://github.com/sethmlarson/truststore/releases)
- [Changelog](https://github.com/sethmlarson/truststore/blob/main/CHANGELOG.md)
- [Commits](sethmlarson/truststore@v0.10.4...v0.10.5)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-versions
- dependency-name: mcp-types
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-versions
- dependency-name: opentelemetry-api
  dependency-version: 1.45.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-versions
- dependency-name: pycparser
  dependency-version: '3.11'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-versions
- dependency-name: pydantic
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-versions
- dependency-name: pydantic-core
  dependency-version: 2.50.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-versions
- dependency-name: truststore
  dependency-version: 0.10.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
@Llewellynvdm
Llewellynvdm marked this pull request as ready for review October 16, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant