Commit Graph

11177 Commits

Author SHA1 Message Date
rcourtman dbb379839d Merge pull request #2036 from rcourtman/opencode/diagnostic-deepseek-v41-flash
diagnostic: run hosted lifecycle fixture on DeepSeek V4.1 Flash
2026-09-10 18:18:44 +01:00
rcourtman 52d0aeb0cb diagnostic: run hosted lifecycle fixture on DeepSeek V4.1 Flash
Replaces google/gemini-2.5-flash with deepseek/deepseek-v4.1-flash (released 2026-09-10) as the diagnosticModel for the hosted lifecycle diagnostic and its synthetic fixture/wire tests.
2026-09-10 17:35:59 +01:00
pulse-triage[bot] ee8a92e0a4 Merge pull request #2033 from rcourtman/maintainer/20260910T155000Z
Verify notification recovery across retries and restarts
2026-09-10 16:33:20 +00:00
pulse-triage[bot] 07d0a287f2 Merge origin/main before alert lifecycle publication
Change-source: pulse-maintainer
2026-09-10 16:54:34 +01:00
pulse-triage[bot] c104cebfd1 Merge pull request #2032 from rcourtman/maintainer/20260910T145538Z
Make installed notification recovery testable across retries and restarts
2026-09-10 16:45:59 +01:00
rcourtman dd388decf5 Merge pull request #2031 from rcourtman/fix/1913-agent-continuity
Preserve live agent state over saved enrollment history
2026-09-10 16:41:10 +01:00
pulse-triage[bot] faad810e1b Merge branch 'maintainer-async/20260910T152022Z-core-runtime/pulse'
Change-source: pulse-maintainer

# Conflicts:
#	tests/qualification/alert-lifecycle/README.md
#	tests/qualification/alert-lifecycle/acceptance.py
#	tests/qualification/alert-lifecycle/test_acceptance.py
2026-09-10 16:28:51 +01:00
pulse-triage[bot] 4b84d6de7f Merge branch 'maintainer-async/20260910T151508Z-delivery-trust/pulse'
Change-source: pulse-maintainer
2026-09-10 16:28:26 +01:00
pulse-triage[bot] 99700f7874 Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-10 16:28:26 +01:00
pulse-triage[bot] ad9877e28d test: match lifecycle receipts at published webhook precision
Preserve nanosecond API timestamps for incident queries, compare recipient alert identity and RFC3339-second starts, and reject ambiguous same-second recurrences. Require a recipient receipt for terminal retry as well as its original notification audit.

Change-source: pulse-maintainer
2026-09-10 16:22:51 +01:00
pulse-triage[bot] eb88aa7be2 test: retry live terminal alerts before resolving acceptance fixture
Installed beta.2 correctly cancels obsolete terminal firing rows on resolution. Exercise operator retry while the occurrence is live, then verify distinct recurrence delivery, and retain failed retry responses.

Change-source: pulse-maintainer
2026-09-10 16:21:31 +01:00
pulse-triage[bot] 30ce6175c0 test: retry live terminal alerts before resolving acceptance fixture
Installed beta.2 correctly cancels obsolete terminal firing rows on resolution. Exercise operator retry while the occurrence is live, then verify distinct recurrence delivery, and retain failed retry responses.

Change-source: pulse-maintainer
2026-09-10 16:19:53 +01:00
rcourtman 751b8dd8c1 Merge pull request #2030 from rcourtman/fix/manual-update-freshness
Fix manual update freshness and unknown release dates
2026-09-10 16:14:11 +01:00
pulse-triage[bot] 7facf95cd1 Merge branch 'maintainer-async/20260910T150028Z-core-runtime/pulse'
Change-source: pulse-maintainer
2026-09-10 16:12:44 +01:00
pulse-triage[bot] 58b51dcdd7 test: correct installed alert fixture scope contract
The first immutable beta.2 fixture stopped with 403 before alert stimulus because the documented token omitted monitoring:write. Include the required scope and verify both corrected admission and the original denial through the production scope guard. Preserve rejected attempts and require reviewed fresh fixtures; no product authorization checks are changed.

Change-source: pulse-maintainer
2026-09-10 16:01:20 +01:00
rcourtman bd37ae186a Preserve live agent state over saved enrollment history
Saved enrollment records can correlate with a live Proxmox host after a
reinstall. The continuity overlay then replaced its current agent payload
with an older offline identity, hiding metrics and marking the node offline.

Use canonical matching to add only absent continuity resources. Preserve
current identity, telemetry and provider links without deleting history or
changing token admission. Cover repeated reads and identity collisions.

Refs #1913
2026-09-10 16:00:36 +01:00
pulse-triage[bot] 73a7e477ab test: correct installed alert fixture scope contract
The first immutable beta.2 fixture stopped with 403 before alert stimulus because the documented token omitted monitoring:write. Include the required scope and verify both corrected admission and the original denial through the production scope guard. Preserve rejected attempts and require reviewed fresh fixtures; no product authorization checks are changed.

Change-source: pulse-maintainer
2026-09-10 15:58:12 +01:00
pulse-triage[bot] 0f87aad59f test(alerts): add external installed lifecycle acceptance driver
Published notification recovery still lacks installed ordinary-recipient lifecycle evidence. Add a synthetic-only HTTP driver with bounded faults, occurrence-aware receipts, preserved-state restart attestations and explicit incomplete-acceptance reporting so qualification can gather that evidence without changing the frozen product.

Validate the harness failure/observation guards and its report/template contracts separately from installed acceptance. No production code or release gate changes.

Change-source: pulse-maintainer
2026-09-10 15:38:49 +01:00
rcourtman 837a5b8843 Fix manual update freshness and unknown release dates
Manual checks previously bypassed only the browser cache, so a newly
published preview could remain hidden behind a fresh-looking server result.
Carry explicit freshness to the provider, retain prior evidence on failure,
and omit unknown dates instead of rendering year one.
2026-09-10 15:33:53 +01:00
pulse-triage[bot] 9168d16a32 Merge pull request #2029 from rcourtman/maintainer/20260910T132656Z
Safely verify hosted Assistant lifecycle planning
2026-09-10 14:08:16 +00:00
pulse-triage[bot] 153b80f7a1 docs(ai): clarify hosted diagnostic request budget
Distinguish logical adapter-call and provider-neutral request limits from transport retries, compatibility fallbacks, and provider billing attempts. Keep the hosted fixture behavior unchanged.\n\nChange-source: pulse-maintainer

Change-source: pulse-maintainer
2026-09-10 14:25:11 +01:00
pulse-triage[bot] 6f03c8c898 test(ai): add bounded synthetic hosted lifecycle diagnostic
Use production Assistant instructions with synthetic inventory and approval-only planning. Keep gateway inference distinct from native Gemini transport, retain adverse output, and enforce fixed session and token budgets. Hosted execution remains opt-in; local regressions cover model-owned continuation, wire planning and hard call limits.

Change-source: pulse-maintainer
2026-09-10 14:05:15 +01:00
pulse-triage[bot] e1bce26bb0 Merge pull request #2028 from rcourtman/maintainer/20260910T090007Z
Prevent stale alert escalations after alert state changes
2026-09-10 09:46:57 +00:00
pulse-triage[bot] c49b316409 Merge origin/main before publication
Change-source: pulse-maintainer
2026-09-10 10:02:46 +01:00
rcourtman 93a039fb17 Merge pull request #2027 from rcourtman/docs/immutable-release-policy
Align release policy with immutable publication
2026-09-10 09:55:07 +01:00
rcourtman 73ac0eecf4 Align release policy with immutable publication
The workflow stages and verifies its activation marker in the unpublished
draft, then publishes the complete release immutably. The policy still
placed the marker upload after publication and implied public read-back
could return the committed release to draft.

Describe the implemented commit boundary, inert private staging and the
complete readiness join. Preserve source identity, signing, qualification
and customer convergence requirements without changing release execution.
2026-09-10 09:50:56 +01:00
rcourtman bd678cfde6 Merge pull request #2026 from rcourtman/docs/release-reliability-priority
Prioritize dependable release delivery
2026-09-10 09:49:23 +01:00
pulse-triage[bot] 2956dfdee5 Merge pull request #2025 from rcourtman/maintainer/20260910T061147Z
Prevent cleared alerts returning and restore admin settings access
2026-09-10 08:38:09 +00:00
pulse-triage[bot] 2736aa713c Merge commit 'bb787befb25c2043ae52ba34e4200d4be88f0acf'
Change-source: pulse-maintainer
2026-09-10 09:31:06 +01:00
pulse-triage[bot] 216e5464ba Merge commit 'ab225c0d3bb62f8821af75b1bc79cfed13f17ecc'
Change-source: pulse-maintainer
2026-09-10 09:07:03 +01:00
rcourtman 5d862dfce8 Prioritize dependable release delivery
Record clean, consistent releases as the highest current objective.
Keep release consistency explicitly unconfirmed until actual release
and recovery evidence establishes dependable delivery.
2026-09-10 09:05:46 +01:00
pulse-triage[bot] 4a21bc1a3e chore(frontend): format alert history regression
Apply the repository's Prettier layout to the pending-history clear regression so the required frontend check can run the already-validated test without a formatting failure.

Change-source: pulse-maintainer
2026-09-10 08:53:06 +01:00
pulse-triage[bot] ab225c0d3b fix(alerts): reject stale escalation callback admissions
Revalidate policy, active occurrence, acknowledgement and snooze at the monitoring callback boundary. Preserve current routing and cooldown behaviour with live-incident fixtures. Pin pre-deadline policy changes and queued email routing versus resolution independently.

Change-source: pulse-maintainer
2026-09-10 08:42:59 +01:00
pulse-triage[bot] bb787befb2 Format alert history race regressions for frontend CI
Apply the locked formatter to the two pending-history scenarios so the tracked delivery proposal can pass its frontend formatting gate. All six focused history tests pass; no runtime behaviour changes.

Change-source: pulse-maintainer
2026-09-10 08:40:39 +01:00
pulse-triage[bot] f7f0d405bc Merge origin/main before publication
Change-source: pulse-maintainer
2026-09-10 07:16:49 +01:00
pulse-triage[bot] 3a8c8432b5 Merge pull request #2024 from rcourtman/maintainer/20260910T053257Z
Keep automatically acknowledged alerts acknowledged after brief recovery
2026-09-10 06:09:13 +00:00
pulse-triage[bot] 1c2c6b7e88 Merge commit '7dd5982ace56f8ea2329e2b4697dcc1b58c41fb6'
Change-source: pulse-maintainer
2026-09-10 07:07:53 +01:00
pulse-triage[bot] 7dd5982ace fix(auth): synchronise local admin permissions during setup
First-run setup saved the configured administrator but left the router authorizer on its startup identity. This split Settings capability checks: administrator-only panels remained visible while API Access and Pulse Intelligence were denied until restart. Keep the captured authorizer aligned when setup commits the identity, and clear its prior bypass on successful development reset.

Cover the exact split with real file-backed RBAC policy and session setup, preserve outsider denial and identity replacement, and synchronise concurrent policy reads. Extension implementations still require independent compatibility review; this is not installation or release acceptance.

Change-source: pulse-maintainer
2026-09-10 06:52:38 +01:00
pulse-triage[bot] 07ad2a8ea3 fix(alerts): discard pending history reads after clearing
A history request started before a successful clear can return deleted rows afterwards and repopulate the view. Invalidate those reads and settle loading only after the clear succeeds, preserving history on failure and allowing later refreshes.

Change-source: pulse-maintainer
2026-09-10 06:44:37 +01:00
pulse-triage[bot] 86f99bf9e7 Merge commit 'aa3b61c21d82110b338dd0c87a6163da632dc5fc'
Change-source: pulse-maintainer
2026-09-10 06:31:23 +01:00
pulse-triage[bot] aa3b61c21d Merge pull request #2023 from rcourtman/maintainer/20260910T042843Z
Preserve the reviewed agent connection ordering history
2026-09-10 05:23:49 +00:00
pulse-triage[bot] 9f2d98ad76 fix(alerts): retain automatic acknowledgement across refires
Cleanup only marked the active alert acknowledged, leaving recurrence retention and reducer state unlike manual acknowledgement. A short recovery and refire consequently reopened it unacknowledged. Mirror automatic acknowledgements into both tracking paths and request persistence before callbacks.

Regression fails before the repair at short recovery/refire. Focused cleanup, manual acknowledgement and automatic acknowledgement race tests pass.

Change-source: pulse-maintainer
2026-09-10 06:03:24 +01:00
pulse-triage[bot] ae80325330 Merge landed agent ordering proposal into reviewed history
Preserve the independently reviewed duplicate correction commits after PR #2021 landed the identical runtime tree.

Change-source: pulse-maintainer
2026-09-10 05:44:02 +01:00
pulse-triage[bot] b3b1fa8773 Merge pull request #2021 from rcourtman/maintainer/20260910T023123Z
Keep agent commands ordered during connection and verify Gemini reboot planning
2026-09-10 04:33:50 +00:00
pulse-triage[bot] 1a983cd2d9 Merge Delivery registration test correction candidate 20260910T032525Z
Change-source: pulse-maintainer
2026-09-10 04:59:41 +01:00
pulse-triage[bot] f825e0b0a1 test(agentexec): isolate registration ordering log probe
The regression temporarily replaces zerolog's global logger. A prior WebSocket
handler can still be finishing after its own test returns, so joining only this
probe's handler does not prevent a race with that earlier log write. Run the
hook in a bounded child invocation of the same race-instrumented test binary.

Change-source: pulse-maintainer
2026-09-10 04:42:33 +01:00
pulse-triage[bot] 8e977d464f test(agentexec): isolate registration ordering log probe
Independent review reproduced a global logger race with a preceding upgraded WebSocket handler. Run the deterministic probe in the same race-instrumented test binary as an isolated child rather than assuming our handler join also covers earlier tests. The corrected probe fails against the original server and the complete agentexec race package passes with the repair.

Change-source: pulse-maintainer
2026-09-10 04:31:05 +01:00
pulse-triage[bot] 016dfd4ee0 fix(agentexec): reserve registration acknowledgement before dispatch
A session was discoverable before its registration acknowledgement reserved the write lock. An immediate dispatch could therefore become the first frame, which the unified client rejects while awaiting registration. Reserve the new connection write lock under the session-map lock so no dispatcher can overtake the handshake.

The deterministic publication-window regression fails before the repair. Agentexec package race tests and real unified-agent typed receipt replay/cancellation tests pass after it; no timeout thresholds or admission checks are relaxed.

Change-source: pulse-maintainer
2026-09-10 04:26:57 +01:00
pulse-triage[bot] 03dcabdf87 fix(agentexec): reserve registration acknowledgement before dispatch
A session was discoverable before its registration acknowledgement reserved the write lock. An immediate dispatch could therefore become the first frame, which the unified client rejects while awaiting registration. Reserve the new connection write lock under the session-map lock so no dispatcher can overtake the handshake.

The deterministic publication-window regression fails before the repair. Agentexec package race tests and real unified-agent typed receipt replay/cancellation tests pass after it; no timeout thresholds or admission checks are relaxed.

Change-source: pulse-maintainer
2026-09-10 04:04:11 +01:00
pulse-triage[bot] d8e9058753 chore(deps): qualify non-database metrics dependency updates
Update compress and Prometheus common independently of the grouped database proposal. Common requires x/net 0.58.0; all other selected modules and existing checksums remain unchanged. Extend real exporter wire coverage for wildcard, browser and JSON fallback requests alongside gzip, protobuf and optional zstd compatibility.

Contract-Neutral: Dependency maintenance and expanded compatibility coverage only; no Pulse API, deployment policy, toolchain or enabled exporter format changes.
Change-source: pulse-maintainer
2026-09-10 03:40:06 +01:00