command_tower 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7116094a133d9fc9edaf8cc0851bde09a3c2bebacded3ea64b1f4a7b4f445db
4
- data.tar.gz: e4880f05a6c601fb07349d44d27d3a746e10051e8b4ef2b701dc961998862fc4
3
+ metadata.gz: 5243f531ae8a96ca6373b331d30665a0417078f9b799ca0491c78a26231b639e
4
+ data.tar.gz: 6d6ed873a0a3012fd8b09b952be2b4a32652980fea5ba6871c8089ffdba71ade
5
5
  SHA512:
6
- metadata.gz: 3633188b6f62b92945cf142ea65fff20a596420b9c0cc4f907d4688732b4d03f283843277e36ea662091b097f71d39d348f4bd06822604f2dace486b3484df38
7
- data.tar.gz: 749c9b86dd4919c072e1a29af779a84bcd65892f1c95b80f06ded36b4e30844c9598eabf050902d13679cfe911c6b6214898236afd6472ef61fb17370a8b7757
6
+ metadata.gz: 94aa74a9fe97771c5b690db1fa00298dd551ba9a0a62430097a3ffac583e4be5c66198768e8262f670863533fa90d18ddc5ab89e34a64fd5967d00bbf550f93b
7
+ data.tar.gz: 57431bc097a11ea361fe5e56d7ef797a6c07afbd076219745a0687fb33d456e809bf693785eb7d794e0a0cf9443f414d78522dc742e8d8bd5219a508155ef41d
@@ -9,7 +9,7 @@ Minor release: canonical action-intervention envelope ser/de, and Admin Scope re
9
9
 
10
10
  | Change | Host impact |
11
11
  |--------|-------------|
12
- | Intervention envelope | `CommandTower::Serializers::Intervention::EnvelopeSerializer` / `EnvelopeDeserializer` (plus blocker/remediation serializers). Canonical `{ action, allowed, blockers[] }` with ordered blockers; **no** presentation-mode fields. Host/CT FE owns `callout` / `intercept` / `sheet` / `blocking_region`. |
12
+ | Intervention envelope | `CommandTower::Serializers::Intervention::EnvelopeSerializer` / `EnvelopeDeserializer` (plus blocker/remediation serializers). Canonical `{ action, allowed, blockers[] }` with ordered blockers; **no** presentation-mode fields. Host/CT FE owns `callout` / `intercept` / `sheet` / `blocking_region`. Optional blocker `severity` strings: prefer `CommandTower::Intervention::Severity` (`blocking`, `warning`, `informational`) — transport hints only; FE `tone` remains host-owned. |
13
13
  | Admin Scope hook requirements | Every `admin_scope.register` still requires `options`, `validate`, and `availability`. Resource-narrowing hooks (`narrow_users`, `narrow_audit`, `affected_users_in_scope`) are required for CT-owned **`users`** / **`audit`**, or whenever any narrowing hook is set. Host product tools may register the three base hooks only. |
14
14
 
15
15
  ## Host actions
@@ -0,0 +1,24 @@
1
+ # Upgrade: CommandTower 0.13.1
2
+
3
+ **From:** `0.13.0`
4
+ **To:** `0.13.1`
5
+
6
+ Patch release: canonical host-authored intervention severity constants. No public HTTP or persistence break.
7
+
8
+ ## Host-visible changes
9
+
10
+ | Change | Host impact |
11
+ |--------|-------------|
12
+ | `CommandTower::Intervention::Severity` | Named constants for optional blocker `severity` strings: `BLOCKING` (`"blocking"`), `WARNING` (`"warning"`), `INFORMATIONAL` (`"informational"`). Transport hints only — CommandTower does not serialize FE `tone`. Hosts map severity → `@commandtower/frontend` `ActionIntervention` tone. |
13
+
14
+ ## Host actions
15
+
16
+ 1. Bump gem to `0.13.1` (or `>= 0.13.1`).
17
+ 2. **No new migration.**
18
+ 3. Prefer `CommandTower::Intervention::Severity::*` when setting `BlockerSerializer` `severity:` instead of ad-hoc strings.
19
+ 4. Existing envelopes with free-form `severity` strings remain valid.
20
+
21
+ ## Not in this release
22
+
23
+ - Frontend `ActionIntervention` `tone` (ships in `@commandtower/frontend` **v0.1.6**)
24
+ - New HTTP routes or RBAC entities
@@ -3,8 +3,9 @@
3
3
  Host-facing upgrade / change summaries for CommandTower releases.
4
4
 
5
5
  | Version | Summary |
6
- | [0.13.0](0.13.0.md) | Account self-service deletion (`DELETE /api/me/account`); tombstone + PII scrub; `me_account` RBAC; `users.deleted_at` migration |
7
6
  |---------|---------|
7
+ | [0.13.1](0.13.1.md) | Canonical `Intervention::Severity` constants (`blocking`, `warning`, `informational`) |
8
+ | [0.13.0](0.13.0.md) | Account self-service deletion (`DELETE /api/me/account`); tombstone + PII scrub; `me_account` RBAC; `users.deleted_at` migration |
8
9
  | [0.12.0](0.12.0.md) | Intervention envelope serializers/deserializers; product-tool admin_scope without Users/Audit narrowing |
9
10
  | [0.11.1](0.11.1.md) | Audit Event `attribute :json` (MariaDB); audit migration without `utf8mb4_0900_ai_ci` |
10
11
  | [0.11.0](0.11.0.md) | Execution context, audit ledger, Admin Workspace, principal capabilities, impersonation, Admin Users |
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CommandTower
4
+ module Intervention
5
+ # Canonical blocker severity strings for host-authored action interventions.
6
+ # Transport-only: CT FE presentation (`tone`) is host-owned and is not
7
+ # serialized on the envelope. Hosts may map these severities to FE tones.
8
+ #
9
+ # - BLOCKING — policy / hard stop (typical FE tone: destructive)
10
+ # - WARNING — attention without framing as an error (typical FE tone: warning)
11
+ # - INFORMATIONAL — soft notice (typical FE tone: informational)
12
+ module Severity
13
+ BLOCKING = "blocking"
14
+ WARNING = "warning"
15
+ INFORMATIONAL = "informational"
16
+
17
+ ALL = [BLOCKING, WARNING, INFORMATIONAL].freeze
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CommandTower
4
- VERSION = "0.13.0"
4
+ VERSION = "0.13.1"
5
5
  end
data/lib/command_tower.rb CHANGED
@@ -19,6 +19,7 @@ require "command_tower/configuration/config"
19
19
  require "command_tower/install/baseline"
20
20
  require "command_tower/install/doctor"
21
21
  require "command_tower/credential_resolution"
22
+ require "command_tower/intervention/severity"
22
23
  require "command_tower/jwt/authorization_helper"
23
24
  require "command_tower/jwt/csrf_helper"
24
25
  require "command_tower/password_recovery/authorization_helper"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: command_tower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - matt-taylor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-26 00:00:00.000000000 Z
11
+ date: 2026-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phonelib
@@ -775,6 +775,7 @@ files:
775
775
  - docs/upgrades/0.11.1.md
776
776
  - docs/upgrades/0.12.0.md
777
777
  - docs/upgrades/0.13.0.md
778
+ - docs/upgrades/0.13.1.md
778
779
  - docs/upgrades/README.md
779
780
  - lib/command_tower.rb
780
781
  - lib/command_tower/admin_scope.rb
@@ -856,6 +857,7 @@ files:
856
857
  - lib/command_tower/impersonation/establish_identity.rb
857
858
  - lib/command_tower/install/baseline.rb
858
859
  - lib/command_tower/install/doctor.rb
860
+ - lib/command_tower/intervention/severity.rb
859
861
  - lib/command_tower/jwt/authorization_helper.rb
860
862
  - lib/command_tower/jwt/csrf_helper.rb
861
863
  - lib/command_tower/logging/lifecycle_declaration.rb