loki-mode 7.0.1 → 7.0.2

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.
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Multi-agent autonomous startup system. Triggers on "Loki Mode". Takes PRD to deployed product with minimal human intervention. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v7.0.1
6
+ # Loki Mode v7.0.2
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -271,14 +271,14 @@ Auto-detected or force with `LOKI_COMPLEXITY`:
271
271
 
272
272
  ---
273
273
 
274
- ## Managed Agents Integration (v7.0.1)
274
+ ## Managed Agents Integration (v7.0.2)
275
275
 
276
276
  Opt-in integration with Claude Managed Agents (released Apr 2026). Gives
277
277
  Loki cross-project audited memory and real multiagent councils. Features
278
278
  are BAKED INTO existing RARV-C and council flows -- no new commands to
279
279
  learn.
280
280
 
281
- **All flags default false.** Default behavior is identical to v7.0.1.
281
+ **All flags default false.** Default behavior is identical to v7.0.2.
282
282
 
283
283
  | Flag | Purpose | Status |
284
284
  |------|---------|--------|
@@ -320,4 +320,4 @@ The following features are documented in skill modules but not yet fully automat
320
320
  | Quality gates 3-reviewer system | Implemented (v5.35.0) | 5 specialist reviewers in `skills/quality-gates.md`; execution in run.sh |
321
321
  | Benchmarks (HumanEval, SWE-bench) | Infrastructure only | Runner scripts and datasets exist in `benchmarks/`; no published results |
322
322
 
323
- **v7.0.1 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
323
+ **v7.0.2 | [Autonomi](https://www.autonomi.dev/) flagship product | ~260 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 7.0.1
1
+ 7.0.2
package/autonomy/run.sh CHANGED
@@ -1040,6 +1040,41 @@ emit_event_json() {
1040
1040
  log_debug "Event: $event_type - $json_data"
1041
1041
  }
1042
1042
 
1043
+ # v7.0.2: Bash helper to emit a managed-agents event to the dashboard's
1044
+ # managed event log (.loki/managed/events.ndjson). Mirrors the Python
1045
+ # emit_managed_event helper so bash callers can land events in the same
1046
+ # stream the dashboard reads. Schema: {ts, type, payload}.
1047
+ emit_managed_event_bash() {
1048
+ local event_type="$1"
1049
+ shift
1050
+ local target_dir="${TARGET_DIR:-.}"
1051
+ local events_file="$target_dir/.loki/managed/events.ndjson"
1052
+ mkdir -p "$target_dir/.loki/managed"
1053
+
1054
+ local timestamp
1055
+ timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)
1056
+
1057
+ # Build payload JSON from key=value args (same convention as emit_event_json)
1058
+ local payload="{"
1059
+ local first=true
1060
+ while [ $# -gt 0 ]; do
1061
+ local key="${1%%=*}"
1062
+ local value="${1#*=}"
1063
+ if [ "$first" = true ]; then first=false; else payload+=","; fi
1064
+ if [[ "$value" =~ ^[0-9]+\.?[0-9]*$ ]] || [[ "$value" =~ ^(true|false|null)$ ]]; then
1065
+ payload+="\"$key\":$value"
1066
+ else
1067
+ value=$(printf '%s' "$value" | sed 's/\\/\\\\/g; s/"/\\"/g; s/ /\\t/g')
1068
+ payload+="\"$key\":\"$value\""
1069
+ fi
1070
+ shift
1071
+ done
1072
+ payload+="}"
1073
+
1074
+ local json_event="{\"ts\":\"$timestamp\",\"type\":\"$event_type\",\"payload\":$payload}"
1075
+ echo "$json_event" >> "$events_file"
1076
+ }
1077
+
1043
1078
  # Emit event to .loki/events/pending/ directory (for event bus subscribers)
1044
1079
  # Used by OTEL bridge and other enterprise services that watch the pending dir.
1045
1080
  # Usage: emit_event_pending <type> [key=value ...]
@@ -6146,6 +6181,10 @@ MANAGED_REVIEW
6146
6181
  "op=run_code_review" \
6147
6182
  "reason=subprocess_failed" \
6148
6183
  "review_id=$review_id"
6184
+ emit_managed_event_bash "managed_agents_fallback" \
6185
+ "op=run_code_review" \
6186
+ "reason=subprocess_failed" \
6187
+ "review_id=$review_id"
6149
6188
  return 1
6150
6189
  fi
6151
6190
 
@@ -6160,6 +6199,11 @@ MANAGED_REVIEW
6160
6199
  "reason=managed_unavailable" \
6161
6200
  "detail=${reason//\"/}" \
6162
6201
  "review_id=$review_id"
6202
+ emit_managed_event_bash "managed_agents_fallback" \
6203
+ "op=run_code_review" \
6204
+ "reason=managed_unavailable" \
6205
+ "detail=${reason//\"/}" \
6206
+ "review_id=$review_id"
6163
6207
  return 1
6164
6208
  fi
6165
6209
 
@@ -6171,12 +6215,19 @@ MANAGED_REVIEW
6171
6215
  "op=run_code_review" \
6172
6216
  "reason=verdict_write_failed" \
6173
6217
  "review_id=$review_id"
6218
+ emit_managed_event_bash "managed_agents_fallback" \
6219
+ "op=run_code_review" \
6220
+ "reason=verdict_write_failed" \
6221
+ "review_id=$review_id"
6174
6222
  return 1
6175
6223
  fi
6176
6224
 
6177
6225
  emit_event_json "managed_review_council_ok" \
6178
6226
  "review_id=$review_id" \
6179
6227
  "iteration=${ITERATION_COUNT:-0}"
6228
+ emit_managed_event_bash "managed_review_council_ok" \
6229
+ "review_id=$review_id" \
6230
+ "iteration=${ITERATION_COUNT:-0}"
6180
6231
  return 0
6181
6232
  }
6182
6233
 
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "7.0.1"
10
+ __version__ = "7.0.2"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try:
@@ -2,7 +2,7 @@
2
2
 
3
3
  The flagship product of [Autonomi](https://www.autonomi.dev/). Complete installation instructions for all platforms and use cases.
4
4
 
5
- **Version:** v7.0.1
5
+ **Version:** v7.0.2
6
6
 
7
7
  ---
8
8
 
package/mcp/__init__.py CHANGED
@@ -57,4 +57,4 @@ try:
57
57
  except ImportError:
58
58
  __all__ = ['mcp']
59
59
 
60
- __version__ = '7.0.1'
60
+ __version__ = '7.0.2'
@@ -98,6 +98,17 @@ def redact_memory_versions(
98
98
  "scanned": 0,
99
99
  }
100
100
 
101
+ # v7.0.2: bound pattern length to mitigate ReDoS. Catastrophic-backtracking
102
+ # patterns like (a+)+$ can hang the MCP server. 512 chars is generous for
103
+ # legitimate compliance/PII patterns.
104
+ if not isinstance(pattern, str) or len(pattern) > 512:
105
+ return {
106
+ "error": "pattern must be a string of <=512 characters (ReDoS guard)",
107
+ "redacted_count": 0,
108
+ "errors": [],
109
+ "scanned": 0,
110
+ }
111
+
101
112
  try:
102
113
  compiled = re.compile(pattern)
103
114
  except re.error as e:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loki-mode",
3
- "version": "7.0.1",
3
+ "version": "7.0.2",
4
4
  "description": "Loki Mode by Autonomi - Multi-agent autonomous startup system for Claude Code, Codex CLI, and Gemini CLI",
5
5
  "keywords": [
6
6
  "agent",
@@ -69,7 +69,7 @@ import logging
69
69
  import os
70
70
  import threading
71
71
  import time
72
- from dataclasses import asdict, dataclass, field
72
+ from dataclasses import dataclass, field
73
73
  from pathlib import Path
74
74
  from typing import Any, Dict, List, Optional
75
75
 
package/skills/memory.md CHANGED
@@ -1,4 +1,4 @@
1
- # Memory Integration (v7.0.0+)
1
+ # Memory Integration (v7.0.2+)
2
2
 
3
3
  Loki Mode ships two memory layers:
4
4
 
@@ -109,8 +109,10 @@ With managed memory on, a new project gets access to:
109
109
  - `.loki/memory/skills/*.json` (org store, RO)
110
110
  - `.loki/memory/anti_patterns/*.json` (org store, RO)
111
111
 
112
- Promotions from user-RW to org-RO go through an explicit
113
- `loki_memory_promote` MCP tool that requires human approval. Never
112
+ Promotions from user-RW to org-RO are MANUAL only at v7.0.x. Use the
113
+ Managed Agents API directly (`memory_stores.memories.create` against the
114
+ org store) with human review. An MCP `loki_memory_promote` tool is on
115
+ the roadmap but NOT shipped in v7.0.x; do not depend on it. Never
114
116
  auto-promote.
115
117
 
116
118
  ## PII redaction
@@ -182,4 +184,4 @@ Dashboard endpoints (read-only, view-layer merge):
182
184
 
183
185
  ---
184
186
 
185
- **v7.0.0** | Opt-in, additive, rollback-safe. Default behavior unchanged.
187
+ **v7.0.2** | Opt-in, additive, rollback-safe. Default behavior unchanged.