alter-runtime 0.3.0__tar.gz → 0.3.1__tar.gz

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.
Files changed (97) hide show
  1. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/PKG-INFO +3 -3
  2. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/__init__.py +1 -1
  3. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/claude_jsonl_watcher.py +1 -1
  4. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/__init__.py +1 -1
  5. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/_base.py +1 -1
  6. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/__init__.py +1 -1
  7. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/__init__.py +2 -2
  8. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/atlas/__init__.py +1 -2
  9. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/cli.py +1 -2
  10. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/sdk/client.py +1 -1
  11. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/services/launchd/com.alter.runtime.plist.in +1 -1
  12. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/services/systemd/alter-runtime.service.in +1 -1
  13. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/ceremony_echo.py +0 -1
  14. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/ebpf.py +2 -2
  15. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/examples/awesomewm/README.md +6 -6
  16. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/pyproject.toml +4 -3
  17. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/.gitignore +0 -0
  18. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/LICENSE +0 -0
  19. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/README.md +0 -0
  20. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/__init__.py +0 -0
  21. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/git_watcher.py +0 -0
  22. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/adapter.py +0 -0
  23. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/storage.py +0 -0
  24. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/tests/__init__.py +0 -0
  25. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/tests/test_adapter.py +0 -0
  26. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/tests/test_storage.py +0 -0
  27. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/tests/test_traits.py +0 -0
  28. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/compost/traits.py +0 -0
  29. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/__init__.py +0 -0
  30. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/adapter.py +0 -0
  31. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/storage.py +0 -0
  32. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/tests/__init__.py +0 -0
  33. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/tests/test_adapter.py +0 -0
  34. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/tests/test_storage.py +0 -0
  35. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/tests/test_traits.py +0 -0
  36. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/self_hoster/traits.py +0 -0
  37. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/__init__.py +0 -0
  38. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/adapter.py +0 -0
  39. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/storage.py +0 -0
  40. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/tests/__init__.py +0 -0
  41. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/tests/test_adapter.py +0 -0
  42. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/tests/test_storage.py +0 -0
  43. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/tests/test_traits.py +0 -0
  44. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/tapo_ecosystem/traits.py +0 -0
  45. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/adapter.py +0 -0
  46. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/storage.py +0 -0
  47. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/tests/__init__.py +0 -0
  48. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/tests/test_adapter.py +0 -0
  49. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/tests/test_storage.py +0 -0
  50. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/tests/test_traits.py +0 -0
  51. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/household/workshop_tools/traits.py +0 -0
  52. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/adapters/worktree_watcher.py +0 -0
  53. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/atlas/base.py +0 -0
  54. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/atlas/ledger.py +0 -0
  55. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/atlas/observations.py +0 -0
  56. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/atlas/schema.py +0 -0
  57. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/cap_cache.py +0 -0
  58. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/clients/__init__.py +0 -0
  59. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/clients/token_usage_client.py +0 -0
  60. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/config.py +0 -0
  61. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/consent.py +0 -0
  62. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/daemon.py +0 -0
  63. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/floor_loop.py +0 -0
  64. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/floor_preflight.py +0 -0
  65. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/http_auth.py +0 -0
  66. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/notifiers/__init__.py +0 -0
  67. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/notifiers/desktop.py +0 -0
  68. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/sdk/__init__.py +0 -0
  69. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/service_install.py +0 -0
  70. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/services/__init__.py +0 -0
  71. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/services/systemd/cf-access-env.conf.in +0 -0
  72. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/sockets/__init__.py +0 -0
  73. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/sockets/dbus.py +0 -0
  74. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/sockets/unix.py +0 -0
  75. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/__init__.py +0 -0
  76. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/active_sessions_cron_emitter.py +0 -0
  77. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/active_sessions_do_publisher.py +0 -0
  78. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/active_sessions_gc.py +0 -0
  79. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/active_sessions_writer.py +0 -0
  80. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/adapters_writer.py +0 -0
  81. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/agent_frames.py +0 -0
  82. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/bus.py +0 -0
  83. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/cache_writer.py +0 -0
  84. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/do_sse.py +0 -0
  85. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/inbox_writer.py +0 -0
  86. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/mcp_fallback.py +0 -0
  87. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/presence_writer.py +0 -0
  88. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/session_presence.py +0 -0
  89. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/sse.py +0 -0
  90. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/subscribers/weave_intent_writer.py +0 -0
  91. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/update_loop.py +0 -0
  92. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/weave/__init__.py +0 -0
  93. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/alter_runtime/weave/resolver.py +0 -0
  94. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/docs/schemas/README.md +0 -0
  95. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/examples/waybar/README.md +0 -0
  96. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/pypi-truealter/README.md +0 -0
  97. {alter_runtime-0.3.0 → alter_runtime-0.3.1}/pypi-truealter/pyproject.toml +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alter-runtime
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: ~Alter Identity Runtime - local sovereign daemon for the continuous identity field. Subscribes to per-~handle Cloudflare Durable Objects, exposes Unix socket + D-Bus + CLI surfaces, falls back gracefully to direct MCP polling.
5
5
  Project-URL: Homepage, https://truealter.com
6
6
  Project-URL: Documentation, https://truealter.com/docs/alter-runtime
7
- Project-URL: Repository, https://github.com/true-alter/Alter
8
- Project-URL: Bug Tracker, https://github.com/true-alter/Alter/issues
7
+ Project-URL: Repository, https://github.com/true-alter/alter-runtime
8
+ Project-URL: Bug Tracker, https://github.com/true-alter/alter-runtime/issues
9
9
  Author: Blake Morrison
10
10
  Author-email: ALTER Meridian Pty Ltd <hello@truealter.com>
11
11
  License: Apache-2.0
@@ -7,5 +7,5 @@ architectural context.
7
7
 
8
8
  from alter_runtime.sdk.client import AlterClient
9
9
 
10
- __version__ = "0.3.0"
10
+ __version__ = "0.3.1"
11
11
  __all__ = ["AlterClient", "__version__"]
@@ -63,7 +63,7 @@ Decisions
63
63
  - D-IaI-1 (Identity-as-Inference): token usage is a passive aggregate with
64
64
  k=1 (single principal machine). The inferred signal (burn-rate by model)
65
65
  is operational telemetry, NOT psychometric inference - no clause of the
66
- IaI 5-point test is triggered. Return: ops.truealter.com visibility.
66
+ IaI 5-point test is triggered. Return: operator visibility.
67
67
  - HTTP auth: JWT sourced from ``load_session()`` at adapter start, then
68
68
  refreshed per-POST from ``ALTER_RUNTIME_SESSION_JWT`` env var as a
69
69
  fallback. Full auth substrate wiring (ensureFreshSession equivalent) is a
@@ -14,7 +14,7 @@ boundary upward.
14
14
 
15
15
  NOT auto-wired into :mod:`alter_runtime.daemon` startup; activation is a
16
16
  follow-up wave once the stub specs in
17
- ``.repos/internal/02-Technical-Strategy/phase2-wave2-stub-specs-pack-2026-05-27.md``
17
+ the ALTER internal Phase-2 wave-2 stub specs
18
18
  land their implementation pass.
19
19
  """
20
20
 
@@ -1,7 +1,7 @@
1
1
  """Shared base classes for the household adapter family.
2
2
 
3
3
  Two adapter shapes per the Phase-2 cross-pattern catalogue
4
- (``.repos/internal/02-Technical-Strategy/phase2-substrate-cross-pattern-catalogue-2026-05-19.md``):
4
+ (ALTER internal Phase-2 cross-pattern catalogue):
5
5
 
6
6
  * :class:`EventBusSubscriberBase` — subscribes to the in-process
7
7
  :class:`~alter_runtime.subscribers.bus.EventBus` for events the
@@ -5,7 +5,7 @@ devices whose member-attested plate tag is ``"compost"``, and computes
5
5
  a 30-day temperature-curve patience trait (band). Persists to
6
6
  ``~/.local/share/alter-runtime/compost.db`` (mode 600).
7
7
 
8
- Spec: ``.repos/internal/02-Technical-Strategy/compost-substrate-adapter-2026-05-19.md``
8
+ Spec: ALTER internal - compost substrate adapter.
9
9
  """
10
10
 
11
11
  from alter_runtime.adapters.household.compost.adapter import CompostAdapter
@@ -6,8 +6,8 @@ diversity, and cadence band. Persists to
6
6
  ``~/.local/share/alter-runtime/workshop_tools.db`` (mode 600). Emits
7
7
  trait bands only — never raw Wh.
8
8
 
9
- Spec: ``.repos/internal/02-Technical-Strategy/workshop-tool-substrate-adapter-2026-05-19.md``
10
- Stub: ``phase2-wave2-stub-specs-pack-2026-05-27.md`` (Eco-12 line).
9
+ Spec: ALTER internal - workshop-tool substrate adapter.
10
+ Stub: ALTER internal Phase-2 wave-2 stub specs (Eco-12 line).
11
11
  """
12
12
 
13
13
  from alter_runtime.adapters.household.workshop_tools.adapter import (
@@ -6,8 +6,7 @@ content-free 128-dim signature vectors. Content stays local forever; only
6
6
  derivative signature hashes cross the consent boundary, under per-stream
7
7
  Art-6(1)(a) consent.
8
8
 
9
- Spec: .repos/internal/02-Technical-Strategy/substrate-recognition-exploration-2026-04-17.md
10
- Plan: .repos/internal/02-Technical-Strategy/atlas-weekend-build-plan-2026-04-18.md
9
+ Spec + plan: ALTER internal technical-strategy (substrate recognition).
11
10
  DR candidate: D-VLT1 (Drew-gated).
12
11
 
13
12
  Honesty clause (spec §2): signatures are DERIVATIVE, not pseudonymous. A 128-dim
@@ -10,8 +10,7 @@ Subcommands:
10
10
  query Query the current materialised view (attunement, warmth, trust tier).
11
11
  ingest Manually ingest a signal (for testing).
12
12
 
13
- Matches the shape of the alter-cli (Node/TS) command handler at
14
- /mnt/personal/Workspaces/alter-cli/src/index.ts:24-79 - simple switch-on-verb,
13
+ Matches the shape of the alter-cli (Node/TS) command handler - a simple switch-on-verb,
15
14
  no external CLI framework dependency (argparse is stdlib).
16
15
  """
17
16
 
@@ -107,7 +107,7 @@ class AlterClient:
107
107
  bearer_token: str | None = None,
108
108
  timeout: float = 30.0,
109
109
  client_name: str = "alter-runtime",
110
- client_version: str = "0.3.0",
110
+ client_version: str = "0.3.1",
111
111
  ) -> None:
112
112
  self.base_url = base_url.rstrip("/")
113
113
  self.api_key = api_key
@@ -70,7 +70,7 @@
70
70
  ~/Library/Application Support/alter, ~/Library/Caches/alter and
71
71
  ~/Library/Logs/alter-runtime, denies all network listening sockets
72
72
  except the Unix socket under Application Support, and uses
73
- ``allow-with-prompt`` for outbound HTTPS to alter-api.fly.dev only.
73
+ ``allow-with-prompt`` for outbound HTTPS to api.truealter.com only.
74
74
  Tracked at alter-runtime#sandbox-profile (TODO; out of scope for
75
75
  this PR — the plist itself is the security floor pre-sandbox). -->
76
76
  <key>ProcessType</key>
@@ -16,7 +16,7 @@
16
16
 
17
17
  [Unit]
18
18
  Description=~Alter Identity Runtime — local sovereign daemon
19
- Documentation=https://github.com/true-alter/Alter/blob/main/packages/alter-runtime/README.md
19
+ Documentation=https://github.com/true-alter/alter-runtime/blob/main/README.md
20
20
  # We do not require network-online.target because the daemon tolerates
21
21
  # offline starts — it degrades to its local cache and retries the DO
22
22
  # connection with exponential backoff (D-RT9).
@@ -30,7 +30,6 @@ daemon supervisor. Like InboxWriter, the supervisor will restart on
30
30
  Refs:
31
31
  * proposed-D-CUST-1 (alter-internal #140) - surface 21 (ceremony echo)
32
32
  * embedded-messenger/05-design-synthesis.md - content_type taxonomy
33
- * .claude/handovers/2026-04-24-alter-myspace-customisation-m2-and-c-spike.md
34
33
  """
35
34
 
36
35
  from __future__ import annotations
@@ -3,8 +3,8 @@
3
3
  The Rust ``alter-ebpf`` binary (subcrate ``packages/alter-ebpf``) is the
4
4
  userspace half of a BPF LSM program that observes ``bprm_check_security``
5
5
  and emits one ``alter1``-shaped JSON envelope per line to stdout for every
6
- exec on a uid the operator opted in to. Patent M (AMCZ-2615626261, FILED
7
- 7 Apr 2026) covers this kernel-adjacent attestation surface.
6
+ exec on a uid the operator opted in to. Patent M (filed 2026) covers this
7
+ kernel-adjacent attestation surface.
8
8
 
9
9
  This subscriber is the bridge between that binary and the in-process
10
10
  :class:`EventBus`. It:
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ambient wibar widget + rofi quick-compose for ALTER messaging on Arch / AwesomeWM. Pairs with the existing waybar example for Wayland users; this is the X11 / AwesomeWM equivalent.
4
4
 
5
- Private-dev scope - Blake's machine. Local-only (IaI Clause 1 compliant): the widget reads a daemon-populated cache file, never the network. The compose script only calls the same local MCP endpoint as `.claude/hooks/cc-slash-msg.sh`.
5
+ Private-dev scope. Local-only (IaI Clause 1 compliant): the widget reads a daemon-populated cache file, never the network. The compose script only calls the same local MCP endpoint as `.claude/hooks/cc-slash-msg.sh`.
6
6
 
7
7
  ## Files
8
8
 
@@ -29,7 +29,7 @@ Private-dev scope - Blake's machine. Local-only (IaI Clause 1 compliant): the wi
29
29
  2. Copy `alter-compose.sh` somewhere on `$PATH`, or leave it in-place and reference the absolute path. Mark it executable:
30
30
 
31
31
  ```bash
32
- chmod +x /mnt/personal/Workspaces/alter/.repos/alter-runtime/examples/awesomewm/alter-compose.sh
32
+ chmod +x /path/to/alter-compose.sh
33
33
  ```
34
34
 
35
35
  3. Edit `~/.config/awesome/rc.lua` and add the widget mount + keybinding (snippets below).
@@ -79,14 +79,14 @@ In your `globalkeys` table, add the quick-compose bind (Super+M suggested; pick
79
79
  awful.key(
80
80
  { modkey }, "m",
81
81
  function ()
82
- awful.spawn("/mnt/personal/Workspaces/alter/.repos/alter-runtime/examples/awesomewm/alter-compose.sh")
82
+ awful.spawn("/path/to/alter-compose.sh")
83
83
  end,
84
84
  { description = "compose alter message", group = "alter" }
85
85
  ),
86
86
  awful.key(
87
87
  { modkey, "Shift" }, "m",
88
88
  function ()
89
- awful.spawn("/mnt/personal/Workspaces/alter/.repos/alter-runtime/examples/awesomewm/alter-compose.sh --read")
89
+ awful.spawn("/path/to/alter-compose.sh --read")
90
90
  end,
91
91
  { description = "read alter inbox", group = "alter" }
92
92
  ),
@@ -107,7 +107,7 @@ awful.key(
107
107
  ## Privacy notes (D-MSG10)
108
108
 
109
109
  - The widget reads `~/.cache/alter/inbox.json` only. No network traffic from the widget path.
110
- - `alter-compose.sh` hits only `http://localhost:9092/api/v1/mcp` with the local dev member key - same path the CC `/msg` hook uses. No third-party endpoints, no telemetry.
110
+ - `alter-compose.sh` hits only `http://localhost:9092/api/v1/mcp` with a local dev key - same path the CC `/msg` hook uses. No third-party endpoints, no telemetry.
111
111
  - Read receipts, presence, and typing indicators are intentionally NOT wired. Opening the inbox (`--read`) does not mark messages read server-side; that's an explicit user action left for the inbox UI.
112
112
 
113
113
  ## Configuration
@@ -117,6 +117,6 @@ Both files respect:
117
117
  | Env var | Default | Purpose |
118
118
  |---------|---------|---------|
119
119
  | `ALTER_MESSENGER_API` | `http://localhost:9092/api/v1/mcp` | MCP endpoint for send/inbox calls |
120
- | `ALTER_MESSENGER_KEY` | `alt_dev_blake_msg` | API key header value |
120
+ | `ALTER_MESSENGER_KEY` | `alt_dev_<handle>_msg` | API key header value (dev-only; backend honours `alt_dev_*` keys only when running in development mode) |
121
121
 
122
122
  Override in your `~/.config/awesome/rc.lua` via `awful.spawn.with_shell` if you need a different endpoint for staging.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "alter-runtime"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "~Alter Identity Runtime - local sovereign daemon for the continuous identity field. Subscribes to per-~handle Cloudflare Durable Objects, exposes Unix socket + D-Bus + CLI surfaces, falls back gracefully to direct MCP polling."
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
@@ -117,11 +117,12 @@ alter-runtime = "alter_runtime.cli:main"
117
117
  [project.urls]
118
118
  Homepage = "https://truealter.com"
119
119
  Documentation = "https://truealter.com/docs/alter-runtime"
120
- Repository = "https://github.com/true-alter/Alter"
121
- "Bug Tracker" = "https://github.com/true-alter/Alter/issues"
120
+ Repository = "https://github.com/true-alter/alter-runtime"
121
+ "Bug Tracker" = "https://github.com/true-alter/alter-runtime/issues"
122
122
 
123
123
  [tool.hatch.build.targets.wheel]
124
124
  packages = ["alter_runtime"]
125
+ exclude = ["alter_runtime/**/tests", "alter_runtime/**/tests/**"]
125
126
 
126
127
  [tool.hatch.build.targets.wheel.force-include]
127
128
  "alter_runtime/services/systemd/alter-runtime.service.in" = "alter_runtime/services/systemd/alter-runtime.service.in"
File without changes
File without changes
File without changes