Commit Graph

2154 Commits

Author SHA1 Message Date
pulse-triage[bot] b0dc796ffb Explain notification pause, cancellation and in-flight limits
Distinguish global cancellation from quiet-hours holds, queued policy skips from provider receipt, and settings changes from recall or credential revocation. Add connected sender and persistent-queue controls, and run the existing notification guidance suites in docs-only CI.

Contract-Neutral: Documentation, mirrors, tests and documentation-only CI describe existing notification behaviour; no runtime, API, permission, schema, dependency or user-visible feature contract changes.
Change-source: pulse-maintainer
2026-10-08 08:46:03 +01:00
pulse-triage[bot] c56cc6c838 Align PMG collection guidance with saved-scope repair
Describe the integrated collector gates, explicit opt-out readback, legacy mail defaults and next-poll limits without treating dataset switches as a connection pause. Retain the verified v6.5.0 warning and incomplete-reading/alert safeguards in the existing guide and shipped mirror.

Contract-Neutral: Documentation and source-bound guidance tests only; no runtime, API, schema, permission or navigation change.
Change-source: pulse-maintainer
2026-10-08 07:53:14 +01:00
pulse-triage[bot] 003f78e726 Merge reviewed audit-webhook delivery and trust guidance
Preserve the exact reviewed candidate. Combine PBS and audit safety selections without dropping prior agent-profile coverage, matching both trigger lists, command and adapter. Pro remains unchanged; source help is not installed delivery acceptance.

Change-source: pulse-maintainer
2026-10-08 07:19:35 +01:00
pulse-triage[bot] a1f575deab Merge reviewed source-specific PBS loading and backup guidance
Preserve the exact two-commit candidate and retained final documentation proof. Resolve safety-list conflicts by retaining both agent-profile and PBS suites in triggers, command and adapter; no frontend source resolution.

Change-source: pulse-maintainer
2026-10-08 07:19:18 +01:00
pulse-triage[bot] 31db541503 Make audit webhook guidance match delivery and trust boundaries
Distinguish audit forwarding from alert notifications, document bounded best-effort delivery and safe reconciliation, and correct receiver, signature and key-storage advice. Bind the existing guide to source and run its safety checks in docs-only CI.

Contract-Neutral: Documentation and static guidance checks only; no audit runtime, API, signature, queue, authority or deployment behaviour changes.
Change-source: pulse-maintainer
2026-10-08 07:00:59 +01:00
pulse-triage[bot] bed151f82f Align PBS source guidance with current backup table labels
Correct the inherited PBS-via-PVE badge assumption using the production source presentation and inventory read states. Preserve the existing help anchor, distinguish PVE files from guest snapshots, and bind guidance regressions to actual source labels.

Change-source: pulse-maintainer
2026-10-08 06:54:22 +01:00
pulse-triage[bot] 021fd2791d Keep slow PBS loading advice source-specific and non-destructive
Replace the unconditional direct-connection fix with existing-source, evaluation and identity checks. Preserve backups, credentials and deployment state while collecting bounded evidence, and select the existing PBS recipe suite in docs-only CI.

Change-source: pulse-maintainer
2026-10-08 06:51:24 +01:00
pulse-triage[bot] d7093fb68f Merge reviewed agent profile authority and application guidance
Change-source: pulse-maintainer
2026-10-08 06:49:33 +01:00
pulse-triage[bot] edfa6ae1d3 Make agent profile guidance match authority and application boundaries
Distinguish metrics from commands, live host refresh from startup-only settings, and desired configuration from verified application. Preserve local privacy opt-outs and make profile API IDs, scopes, uncertain writes and removal limits explicit in both existing help entry points. Exercise the source-bound safety guidance in docs-only CI.

Contract-Neutral: Documentation and static guidance checks only; no agent authority, runtime, API or deployment contract changes.
Change-source: pulse-maintainer
2026-10-08 06:28:51 +01:00
pulse-triage[bot] c8e0f0deb2 Explain unavailable backup-age evaluation without weakening protection
Keep failed age evaluation separate from backup failure, retained alerts and native recovery. Reuse bounded incident logs and preserve the intended policy, backup data and guest-safety checks. Cover the missing guidance and reconcile its existing cleanup source assertions with the reviewed fail-closed helper.

Change-source: pulse-maintainer
2026-10-08 06:28:35 +01:00
pulse-triage[bot] 2c41f68c33 Make PMG monitoring guidance match its collection and access limits
Replace retired navigation, unsupported threshold promises and credential-led refusal advice with current source-bound setup and passive comparisons. Keep failed reads and collection opt-outs distinct from complete monitoring; exercise the guide in existing docs-only CI.

Contract-Neutral: Existing PMG help, mirrored documentation and static guidance/CI checks only; no runtime API, collector, permission, alert or navigation contract changes.
Change-source: pulse-maintainer
2026-10-08 05:52:13 +01:00
pulse-triage[bot] 986bb2454d test: run production rollout guidance in docs-only CI
Include the new production boundary suite in the existing Public docs path triggers and smoke command. Check actual command selection and fail-closed handling with disposable adapters, without dependency installation or provider operations.

Contract-Neutral: Registers the production documentation regression suite in existing read-only docs CI; no runtime, release or deployment behaviour changes.
Change-source: pulse-maintainer
2026-10-08 05:17:59 +01:00
pulse-triage[bot] 795cd3fc11 docs: keep production rollout safe and edition-aware
Make API-only guest-agent activity and backup precautions explicit, isolate disruptive rollout checks, preserve paid runtime and recovery data during updates, and remove retired Relay/Mobile upgrade claims. Bind the existing guide and shipped mirror to safety and edition guidance.

Contract-Neutral: Existing production guidance and regression checks only; no runtime, entitlement, route or deployment contract changes.
Change-source: pulse-maintainer
2026-10-08 05:12:12 +01:00
pulse-triage[bot] 82711cbb91 Merge reviewed safe configuration reset repair
Preserve the exact reset implementation and additive contract whitespace correction, with prior service-state recovery controls.

Change-source: pulse-maintainer
2026-10-08 04:35:48 +01:00
pulse-triage[bot] 354831d6ab Merge reviewed audit filter validation repair
Preserve the exact reviewed audit export and summary validation commit and its source-tested scope controls.

Change-source: pulse-maintainer
2026-10-08 04:33:06 +01:00
pulse-triage[bot] bfca5b34b8 Preserve reviewed maintenance with current upstream monitoring and SAML repairs
Additively incorporate exact upstream main 533027ee06 without rewriting accepted maintenance. Resolve the storage-recovery contract insertion by retaining both the reviewed silent-source History fence and upstream SAML/method constraints. No runtime conflict resolution is introduced; final-content evidence and exact-head checks remain required before publication.

Change-source: pulse-maintainer
2026-10-08 03:06:27 +01:00
pulse-triage[bot] af32cbdcbf fix(installer): contain destructive reset and bind lifecycle proofs
Observe every timer, updater and server before mutation; refuse configuration deletion on uncertain quiescence and restore only prior-active servers and recorded timer states. Keep roles independent of accepted custom service names and never replay an interrupted updater. Exercise actual sourced paths and adverse controls. Move existing Windows native-exit assertions unchanged to their registry-named completion file without relaxing checks.

Change-source: pulse-maintainer
2026-10-08 02:49:30 +01:00
pulse-triage[bot] 582113ccd0 Reject malformed audit export and summary time filters
Share existing list time validation across audit reads so malformed, empty or non-increasing supplied bounds cannot silently widen an investigation. Preserve absent filters, access and tenant gates, export formats and existing pagination boundaries; reject invalid export success booleans before reading events. Pin actual handlers and exporter with fake persistent loggers, including no-query rejection and tenant isolation, and update both copies of the audit guide.

Change-source: pulse-maintainer
2026-10-08 02:44:07 +01:00
pulse-triage[bot] d6a0244ede Merge commit '40dcedde858f71092467282ce21aee6d4ac0adc3'
Change-source: pulse-maintainer
2026-10-08 02:19:34 +01:00
rcourtman d95a316118 Stop sending the ignored autonomous_mode chat field
Since 4edf5f8265, ChatRequest in internal/api/ai_handler.go has no
autonomous_mode field: Go's decoder drops it and HandleChat passes
approval-required mode into the chat service for every /api/ai/chat
request. The browser still serialized autonomous_mode from its send
options, and the eval runner kept a per-step override that sent it too,
so both read as if the client chose the execution mode while the server
ignored it.

Drop the field from AIChatAPI.chat, SendMessageOptions,
ChatMessageRequestContext and the clone, retry and restore helpers, and
Step.AutonomousMode from internal/ai/eval. aiChatStore.context's
autonomousMode stays as a drawer-only flag, so scoped handoffs still show
"Ask first" and "Approval required before any action." Tests now assert
the request carries no autonomous_mode; the backend test proving a stale
client's autonomous_mode:true cannot elevate a request stays.

Contract prose that described autonomous_mode:false as a per-request
override set by the browser now describes the server-set mode and the
drawer disclosure.
2026-10-08 00:17:08 +01:00
pulse-triage[bot] b859bb61c8 Keep audit investigation responses private and bounded
Use the existing API helper for list, summary, export and verify examples. Explain list pagination versus export scope and preserve partial/error evidence. Exercise the copied recipes with private synthetic bodies, both auth headers, HTTP errors, redirects and incomplete transfers.

Contract-Neutral: Documentation and copied-recipe safety tests only; no audit runtime, API or frontend behaviour changes.
Change-source: pulse-maintainer
2026-10-07 23:24:54 +01:00
pulse-triage[bot] 40dcedde85 Refuse server removal until affected units are quiescent
Contain destructive installer removal when systemd observation, stop or disable is uncertain. Stop the updater before the server, reconcile default aliases and local legacy units, and preserve files on refusal. Propagate failed legacy-key replacement even in conditional cleanup. Exercise both removal entrypoints and instance isolation in confined fixtures.

Change-source: pulse-maintainer
2026-10-07 23:15:53 +01:00
pulse-triage[bot] 19a8358a49 Integrate reviewed OIDC session and access-removal guidance
Preserve exact reviewed PI commit 7ab21e217e. Documentation and shipped mirror explain existing revocation limits; retained source-51tuy67n covers the unchanged guide, source boundaries and documentation controls. No runtime or installed access-removal claim.

Change-source: pulse-maintainer
2026-10-07 23:12:43 +01:00
pulse-triage[bot] 648df92d51 Integrate reviewed legacy sensor cleanup containment
Preserve Delivery exact candidate 99d7b5e671 and both independently reviewed installability contract sections. The only conflict resolution combines documentation; runtime and verification bytes remain exactly as proved. Retained component suites pass while two enclosing assertions fail, and no native workload recovery is established.

Change-source: pulse-maintainer
2026-10-07 22:52:14 +01:00
pulse-triage[bot] f00e25d848 Integrate reviewed whole-file legacy installer identity recovery
Preserve Core exact candidate 0b9bd4beb6 and its retained source proof; installed recovery and the historical timeout cause remain separate.

Change-source: pulse-maintainer
2026-10-07 22:51:55 +01:00
pulse-triage[bot] 3f4787f76b Incorporate batch-start upstream retired-surface contract cleanup
Retain the upstream contract and lookup repair already present when review began, without expanding candidate source scope.

Change-source: pulse-maintainer
2026-10-07 22:51:52 +01:00
pulse-triage[bot] 7ab21e217e Explain OIDC session and access-removal limits truthfully
Separate browser-cookie lifetime, sliding server sessions and request-driven token refresh. Remove the false provider-change revocation promise, preserve administrator access and document the existing targeted user-removal boundary and private diagnosis.

Contract-Neutral: Documentation and source-consistency tests only; no authentication, session, authorisation or deployment contract changes.
Change-source: pulse-maintainer
2026-10-07 22:51:30 +01:00
rcourtman 15322e1573 Drop contract prose for the deleted problem-resource surfaces (#2706)
Contract prose still described surfaces that no longer exist:

- `frontend-primitives.md` told new route-level copy to extend
`problemResourcePresentation` (deleted in ae65c5e9a2), tied that helper
to `ProblemResourcesTable.tsx` (deleted with the dashboard overview in
c743a231b8), and kept a readability rule for that table and the
dashboard Pulse Brief. No live surface implements the rule; Patrol's
grouping and affected-resource counts are governed in
`patrol-intelligence.md`. The ownership paragraph and the rule are
dropped, and problem-resource joins the list of deleted dashboard
helpers that must not return.
- `unified-resources.md` said the change and correlation summary cards
default Infrastructure resource-filter links for the Patrol page and the
problem-resource dashboard panels. Since the 2026-05-16 drilldown
retirement the cards have no link default and render only in the
resource drawer, which passes no link builder.
- `api-contracts.md` named the dashboard Pulse Brief as a sender of
`autonomous_mode:false` and described the field as a client override.
Since 4edf5f8265, `ChatRequest` has no such field: the server runs every
`/api/ai/chat` exchange in approval-required mode (pinned by
`TestHandleChat_CannotElevateAutonomousModePerRequest`), and the field
is dropped at decode.

The new `subsystem_lookup_test.py` case pins the deleted helper as
unowned, next to the other retired dashboard paths.

Verification: `contract_audit.py`, `registry_audit.py` and
`status_audit.py` pass with `--check`; the retired-path lookup tests
pass (9/9); the full pre-commit battery passed. No frontend or backend
runtime files change.
2026-10-07 22:44:27 +01:00
pulse-triage[bot] 0b9bd4beb6 Reject corrupt legacy installer agent identities
Account for every byte in the root-boundary compatibility reader, preserving descriptor-first recovery and rejecting oversized valid prefixes, multiple identities and discarded NULs. Keep the original two-second fixture budget, contain descendant processes and report build/probe timing separately. Add real-agent, legacy and cancellation controls without claiming a cause for the retained timeout.

Change-source: pulse-maintainer
2026-10-07 22:09:51 +01:00
pulse-triage[bot] 7b03e5a10f Make proxy authentication setup role-aware and its probe bounded
Replace incomplete provider snippets with the existing authenticator and header-replacement requirements. Surface the all-users-admin default before enablement and stop copied diagnostics on bounded transport failure, preserving credentials and actual access checks.

Contract-Neutral: Documentation and synthetic recipe tests only; proxy authentication semantics and runtime contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 22:08:22 +01:00
pulse-triage[bot] 99d7b5e671 Stop legacy sensor cleanup on unconfirmed service or container state
Require stopped-state readback before each LXC mutation, reject failed pct set fallback, preserve snapshot entries and only-prior-active restoration, and return incomplete cleanup without removing recovery files. Add isolated adverse lifecycle and completion controls.

Change-source: pulse-maintainer
2026-10-07 22:07:07 +01:00
pulse-triage[bot] 814edf7eab Integrate reviewed executable update acceptance
Retain exact commit 18df4c1b46. Executable identity and bounded successful version probes replace metadata-only acceptance, retaining rollback and prior-active restoration. Source-uy8hwdan contains passing 24 focused methods and 191 subcases with vet; enclosing exit 1 from the incorrect control count and the independent broad installer failure remain adverse evidence, not cleared.

Change-source: pulse-maintainer
2026-10-07 21:58:42 +01:00
pulse-triage[bot] cbeea20be1 Integrate reviewed preserving legacy sensor cleanup guidance
Retain exact commits 953e0c6dec and 2ffb4eb8ab. Existing cleanup guidance discloses LXC disruption, preserves recovery evidence and API access, and requires planned maintenance and real postconditions. Hash-bound source-4e_1ht9i proves the documentation controls, not native cleanup or shipped relief.

Change-source: pulse-maintainer
2026-10-07 21:58:40 +01:00
pulse-triage[bot] 18df4c1b46 Require executable version evidence after unattended updates
Reject successful installers whose replacement cannot identify itself as the target community runtime. VERSION metadata and failed or unrecognised probes cannot establish acceptance; retain the existing verified rollback and prior-active restoration. Exercise the complete locally signed installer transaction and bounded executable read.

Change-source: pulse-maintainer
2026-10-07 20:04:44 +01:00
pulse-triage[bot] 2ffb4eb8ab Match saved-script cleanup checks to the preserving local invocation
The existing argv test now exercises the one documented non-purging cleanup instead of the two removed destructive examples. Retarget and ordinary agent uninstall checks are retained.

Contract-Neutral: Documentation test expectations only; no runtime or installer change.
Change-source: pulse-maintainer
2026-10-07 20:03:04 +01:00
pulse-triage[bot] 953e0c6dec Keep legacy sensor cleanup local and preserve recovery evidence
Treat the existing helper as disruptive Proxmox host maintenance: disclose its LXC stop/start and key-removal scope, omit purge and API-account deletion, and require pre-state, private backups and actual postconditions. Exercise copied success/failure arguments with a synthetic helper and bind safety prose to current source.

Contract-Neutral: Documentation and documentation tests only; the cleanup helper, privileges and runtime contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 20:01:07 +01:00
pulse-triage[bot] e75f3e2b35 Integrate reviewed manual update channel admission
Accept the exact Delivery candidate and its complete source-s468dla1 installer proof. The final repair removes only contract EOF whitespace; installer and regression-test bytes are unchanged. Native installed recovery and protected publication remain separate.

Change-source: pulse-maintainer
2026-10-07 19:55:33 +01:00
pulse-triage[bot] 6024afe00a Integrate reviewed scoped ZFS troubleshooting
Accept product-intelligence candidate 20261007T180421Z-product-intelligence at exact tip 2209c65e8c. Preserve the existing ZFS row and health contract while replacing blanket permission grants and masked log reads with configured-token, deployment-scoped guidance. Retained source-3rssfcmh passes fifteen affected methods and rejects parent plus adverse controls; this is source help, not native recovery or publication.

Change-source: pulse-maintainer
2026-10-07 19:43:07 +01:00
pulse-triage[bot] 493e0b5fa9 Bind parsed manual channels through installer execution
The installer rereads saved preferences without an explicit selector. Forward the parsed stable default as well as RC, and prove the containing installer's actual channel-selection functions against the same signed fixtures.

Change-source: pulse-maintainer
2026-10-07 19:23:46 +01:00
pulse-triage[bot] 2209c65e8c Check both fenced and inline ZFS permission recipes
The exact-source adverse control restored a guessed-account ACL command in inline Markdown without rejection. Parse fenced shell and single-line inline commands separately so triple backticks cannot hide a later permission mutation.

Contract-Neutral: Documentation safety test repair only; no runtime or permission contract delta.
Change-source: pulse-maintainer
2026-10-07 19:23:05 +01:00
pulse-triage[bot] 1992c681c2 Preserve reviewed monitoring maintenance with current Patrol and alert defaults
Additively incorporate upstream 843daf7ae3 without removing accepted source. Resolve the overlapping AI documentation assertion by preserving its whitespace-normalized compatibility check together with upstream dead-Patrol guidance. The focused documentation policy tests pass; browser and final-source validation dependencies remain explicit.

Change-source: pulse-maintainer
2026-10-07 19:11:35 +01:00
pulse-triage[bot] 2c5f52081b Match ZFS Docker log boundary to its existing sentence
Keep the same safety assertion with the lower-case clause used by the guide; the first local assertion failed on capitalisation, not reader behaviour.

Contract-Neutral: Documentation test wording only; no runtime or contract delta.
Change-source: pulse-maintainer
2026-10-07 19:09:53 +01:00
pulse-triage[bot] f9a0d3d95e Keep Proxmox ZFS diagnosis scoped to existing read access
Separate missing storage rows, capacity and pool health; remove blanket guessed-account ACL advice and user-only permission checks. Reuse bounded server log guidance on the actual Pulse host, preserving native health checks and private evidence.

Contract-Neutral: Existing documentation and safety controls only; no runtime, API, feature or permission contract change.
Change-source: pulse-maintainer
2026-10-07 19:09:21 +01:00
pulse-triage[bot] 589d7e18b5 Read manual update channels from complete top-level settings
Stop the generated helper before downloads when saved channel evidence is malformed or unreadable. Preserve explicit selectors, source-marker precedence and signed-installer verification; exercise the actual helper with signed local fixtures.

Change-source: pulse-maintainer
2026-10-07 19:08:04 +01:00
pulse-triage[bot] 98b92689a3 Integrate reviewed bounded agent log guidance
Preserve the exact reviewed Product Intelligence commit and retained documentation proof. Existing agent help uses passive bounded log reads and keeps failed partial output private.

Change-source: pulse-maintainer
2026-10-07 18:45:56 +01:00
pulse-triage[bot] 615e113469 Integrate reviewed Proxmox replication help
Preserve the three reviewed Web commits and their exact source proof. Existing help separates classification from stale inventory without disruptive diagnostics.

Change-source: pulse-maintainer
2026-10-07 18:45:52 +01:00
pulse-triage[bot] ba90322535 Integrate reviewed stable release metadata admission
Bind unattended update selection to complete release objects with explicit stable maturity, while preserving signature, edition, consent and recovery gates.

Change-source: pulse-maintainer
2026-10-07 18:30:10 +01:00
rcourtman 60527fa8ab Drop contract prose for the deleted problem-resource surfaces
frontend-primitives.md still told new route-level copy to extend
problemResourcePresentation, deleted in ae65c5e9a2, and kept a paragraph
tying that helper to ProblemResourcesTable.tsx, deleted with the dashboard
overview in c743a231b8. It also kept a readability rule for that table and
the dashboard Pulse Brief. Neither surface exists and no live surface
implements the rule; Patrol's grouping and affected-resource counts are
governed in patrol-intelligence.md. Drop the ownership paragraph and the
rule, and list problem-resource among the deleted dashboard helpers that
must not return.

unified-resources.md still said the change and correlation summary cards
default Infrastructure resource-filter links for the Patrol page and the
problem-resource dashboard panels. Since the 2026-05-16 drilldown
retirement the cards have no link default and render only in the resource
drawer, which passes no link builder, so labels show as plain text.
api-contracts.md named the dashboard Pulse Brief as a sender of
autonomous_mode:false and described that field as a client override. Since
4edf5f8265 ChatRequest has no autonomous_mode field: the server runs every
/api/ai/chat exchange in approval-required mode, as
TestHandleChat_CannotElevateAutonomousModePerRequest pins, and the field
that scoped handoffs still send is dropped at decode. Say so, and stop
calling Patrol finding handoffs stricter than ordinary chat.

The new lookup test pins the deleted helper as unowned, next to the other
retired dashboard paths, so the dropped ownership claim cannot come back
through the registry unnoticed.
2026-10-07 18:22:57 +01:00
pulse-triage[bot] 4733e816e2 Bound passive agent log collection across help entry points
Replace indefinite journal followers, a failure-masking search and diagnostic debug/restart advice with one shared deadline-bounded reader. Preserve failed reads and both streams, identify the affected agent host and keep raw errors private. Exercise copied commands with missing-tool, partial-failure, timeout and termination controls; no native recovery claim.

Contract-Neutral: Existing agent-help recipes and executable documentation controls only; agent, installation, collection, command-channel, permission and notification runtime contracts are unchanged.
Change-source: pulse-maintainer
2026-10-07 18:06:37 +01:00
pulse-triage[bot] d0a4f48bb2 Keep notification report evidence passive and distinct
Clarify Test versus ordinary delivery and message identity in the existing optional evidence fields. Preserve original queue context without sending, replaying or exposing destination secrets; pin both form schemas and the mirrored triage guide.

Contract-Neutral: Report guidance and its static checks only; no runtime, notification delivery or intake automation change.
Change-source: pulse-maintainer
2026-10-07 17:44:15 +01:00