loki-mode 9.78.0 → 9.80.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.
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/lib/engine10-legacy-notice.txt +3 -0
- package/autonomy/lib/engine10-push-gitlab.sh +96 -0
- package/autonomy/lib/engine10-push.sh +67 -2
- package/dashboard/__init__.py +1 -1
- package/docs/INSTALLATION.md +1 -1
- package/docs/dev/tmp-cleanup.md +3 -3
- package/docs/v10/BOARD.md +67 -28
- package/docs/v10/ENGINE.md +267 -735
- package/docs/v10/METRICS.md +26 -0
- package/docs/v10/PROGRESS.md +28 -0
- package/loki-ts/dist/loki.js +556 -623
- package/loki-ts/package.json +1 -1
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
- package/web-app/dist/assets/{AdminPage-CSy7GfXm.js → AdminPage-Brg7_Lyr.js} +1 -1
- package/web-app/dist/assets/{Avatar-FuCbZv5L.js → Avatar-7nY6uJxD.js} +1 -1
- package/web-app/dist/assets/{Badge-Do6fV7hN.js → Badge-Cbf2CTvW.js} +1 -1
- package/web-app/dist/assets/{Button-B9NZXMf8.js → Button-CvKmf9hm.js} +1 -1
- package/web-app/dist/assets/{CockpitPage-VXxvKnKW.js → CockpitPage-wLAuI5UQ.js} +1 -1
- package/web-app/dist/assets/{ComparePage-OmqxCaK7.js → ComparePage-CMdzzTeh.js} +1 -1
- package/web-app/dist/assets/{ErrorBoundary-BYCkDeu8.js → ErrorBoundary-CAIYBXBt.js} +1 -1
- package/web-app/dist/assets/{EvidenceReceiptPanel-KesRGf-7.js → EvidenceReceiptPanel-BnrDrzRA.js} +1 -1
- package/web-app/dist/assets/{GitHubIssuesPanel-fEnpFg8B.js → GitHubIssuesPanel-CnWx9CiK.js} +1 -1
- package/web-app/dist/assets/{GitHubPRsPanel-DGGod_Y0.js → GitHubPRsPanel-y8gYUjnH.js} +1 -1
- package/web-app/dist/assets/{HomePage-EeWPhwob.js → HomePage-CqaADKqJ.js} +2 -2
- package/web-app/dist/assets/{LoginPage-BPHKgT1f.js → LoginPage-C4-UpzUT.js} +1 -1
- package/web-app/dist/assets/{MagicPage-CO0MTvpr.js → MagicPage-CQ7UMIwO.js} +1 -1
- package/web-app/dist/assets/{MetricsPage-eYpHWxnI.js → MetricsPage-nGehSAp4.js} +1 -1
- package/web-app/dist/assets/{NotFoundPage-Cd409HEe.js → NotFoundPage-EkC6K3N-.js} +1 -1
- package/web-app/dist/assets/{ProjectPage-hcAZ_hrX.js → ProjectPage-Cdjs0beW.js} +3 -3
- package/web-app/dist/assets/{ProjectsPage-DH04B2fr.js → ProjectsPage-CHcSeyxO.js} +1 -1
- package/web-app/dist/assets/{SettingsPage-Csur-yom.js → SettingsPage-DDhw0s6W.js} +1 -1
- package/web-app/dist/assets/{ShowcasePage-B5AIrDXd.js → ShowcasePage-BBxQDg5j.js} +1 -1
- package/web-app/dist/assets/{SystemSettingsPage-DA6Bn7er.js → SystemSettingsPage-Aj91V7Zy.js} +1 -1
- package/web-app/dist/assets/{TeamsPage-KcBbM7_z.js → TeamsPage-H10Qp1fu.js} +1 -1
- package/web-app/dist/assets/{TemplatesPage-BgLOizbo.js → TemplatesPage-AcxgsKwZ.js} +1 -1
- package/web-app/dist/assets/{TerminalOutput-CX-gh76o.js → TerminalOutput-O6dQA9Qa.js} +1 -1
- package/web-app/dist/assets/{activity-6UlD-ytF.js → activity-CMnBtTxM.js} +1 -1
- package/web-app/dist/assets/{bell-CFARmHF4.js → bell-Dseaifqw.js} +1 -1
- package/web-app/dist/assets/{bot-M-HZlOa2.js → bot-Bm_xcawB.js} +1 -1
- package/web-app/dist/assets/{check-9GtMUwM3.js → check-TXNSTOop.js} +1 -1
- package/web-app/dist/assets/{chevron-left-CPV_nwtP.js → chevron-left-D35Mb_-x.js} +1 -1
- package/web-app/dist/assets/{circle-alert-UahP_eMY.js → circle-alert-Rt6AMJ2V.js} +1 -1
- package/web-app/dist/assets/{clock-CcCc97td.js → clock-Dlc0SEVv.js} +1 -1
- package/web-app/dist/assets/{cloud-CviPksVP.js → cloud-DPd4GLS2.js} +1 -1
- package/web-app/dist/assets/{code-xml-gGDp7nvj.js → code-xml-B_scyMd5.js} +1 -1
- package/web-app/dist/assets/{database-BlHnMksz.js → database-DuPEBXUA.js} +1 -1
- package/web-app/dist/assets/{dollar-sign-CqZfNw7q.js → dollar-sign-C49nrBOI.js} +1 -1
- package/web-app/dist/assets/{file-code-corner-ChtMYoeA.js → file-code-corner-B3wt8I4V.js} +1 -1
- package/web-app/dist/assets/{file-plus-C3l1fGp_.js → file-plus-CuHHSDVU.js} +1 -1
- package/web-app/dist/assets/{globe-BM4RYvi9.js → globe-Kl77FTuJ.js} +1 -1
- package/web-app/dist/assets/{hammer-C8xvsZCy.js → hammer-D0LLVOf5.js} +1 -1
- package/web-app/dist/assets/{index-BsB5DTpP.js → index-ufh2YvPO.js} +2 -2
- package/web-app/dist/assets/{layers-WUsuQnfe.js → layers-C3vb5zor.js} +1 -1
- package/web-app/dist/assets/{loader-circle-CWZhBNSa.js → loader-circle-BfFuGacT.js} +1 -1
- package/web-app/dist/assets/{lock-bbfx9k11.js → lock-CicpAGtr.js} +1 -1
- package/web-app/dist/assets/{package-CDfsTKO6.js → package-Bw8snKHr.js} +1 -1
- package/web-app/dist/assets/{plus-DEm39Klm.js → plus-KXZkO61K.js} +1 -1
- package/web-app/dist/assets/{refresh-cw-DJZcHBKa.js → refresh-cw-CshUF54x.js} +1 -1
- package/web-app/dist/assets/{rotate-ccw-BcngFsiU.js → rotate-ccw-S9JJTBcV.js} +1 -1
- package/web-app/dist/assets/{scroll-text-CYSjVzWv.js → scroll-text-CLOq2Mvg.js} +1 -1
- package/web-app/dist/assets/{server-CkMcbRF7.js → server-ClM4a2Wx.js} +1 -1
- package/web-app/dist/assets/{shield-alert-D6ZsDRLA.js → shield-alert-DXhyR0S_.js} +1 -1
- package/web-app/dist/assets/{thumbs-up-Ce0QhF9c.js → thumbs-up-CYb6ycQ-.js} +1 -1
- package/web-app/dist/assets/{trash-2-OojrLB2z.js → trash-2-BcHIiT3v.js} +1 -1
- package/web-app/dist/assets/{trending-down-3Bu2DcUr.js → trending-down-C5eAxnkt.js} +1 -1
- package/web-app/dist/assets/{trending-up-BUkmDOK8.js → trending-up-m9XmNKav.js} +1 -1
- package/web-app/dist/assets/{upload-BgR13l74.js → upload-ZYJCPyYM.js} +1 -1
- package/web-app/dist/assets/{usePolling-DwQTkEQG.js → usePolling-uC-lirzx.js} +1 -1
- package/web-app/dist/assets/{user-DZcP5JBh.js → user-C1dyK-6p.js} +1 -1
- package/web-app/dist/index.html +1 -1
package/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ name: loki-mode
|
|
|
3
3
|
description: Autonomous spec-driven build system with a built-in trust layer. It does not call work done until it is verified (RARV-C closure loop, 8 quality gates, completion council, verified-completion evidence gate). Triggers on "Loki Mode". Takes a spec (PRD, GitHub issue, OpenAPI doc, etc.) to deployed product with minimal human intervention. Provider-agnostic. Requires --dangerously-skip-permissions flag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Loki Mode v9.
|
|
6
|
+
# Loki Mode v9.80.1
|
|
7
7
|
|
|
8
8
|
**You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
|
|
9
9
|
|
|
@@ -470,4 +470,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
|
|
|
470
470
|
|
|
471
471
|
---
|
|
472
472
|
|
|
473
|
-
**v9.
|
|
473
|
+
**v9.80.1 | [Autonomi](https://www.autonomi.dev/) flagship product | ~410 lines core**
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
9.
|
|
1
|
+
9.80.1
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Loki 10 engine P4 push child for GitLab (ENGINE.md sections 6, 7 and 13).
|
|
3
|
+
#
|
|
4
|
+
# engine10-push-gitlab.sh push-mr <repo-dir> <branch> <title> <body-file> [--draft]
|
|
5
|
+
#
|
|
6
|
+
# Prints the merge request URL. Holds GitLab credentials, runs no LLM, reads
|
|
7
|
+
# no untrusted text beyond argv. The target project comes only from the origin
|
|
8
|
+
# P0 pinned before any provider ran (_LOKI_ORIGIN_PINNED=1
|
|
9
|
+
# _LOKI_PINNED_ORIGIN=<url>), and that origin must be a literal gitlab.com
|
|
10
|
+
# https or ssh URL. _loki_trusted_push refuses non-github.com origins, so this
|
|
11
|
+
# mirrors its shape: the branch is fetched into a fresh --template= repo and
|
|
12
|
+
# pushed from there, so no agent-repo hook or config runs in the credentialed
|
|
13
|
+
# process; glab runs from / with the host fixed to gitlab.com.
|
|
14
|
+
set -o pipefail
|
|
15
|
+
|
|
16
|
+
die() { printf 'engine10-push-gitlab: %s\n' "$*" >&2; exit "${2:-2}"; }
|
|
17
|
+
|
|
18
|
+
# <url> -> GROUP[/SUBGROUP...]/PROJECT on stdout, or rc 1. Literal gitlab.com
|
|
19
|
+
# only: no host alias, no port, no embedded credentials, no odd characters.
|
|
20
|
+
_e10_gitlab_project_from_url() {
|
|
21
|
+
local u="${1:-}" lc pre p
|
|
22
|
+
lc="$(printf '%s' "$u" | tr '[:upper:]' '[:lower:]')"
|
|
23
|
+
case "$lc" in
|
|
24
|
+
https://gitlab.com/*) pre="https://gitlab.com/" ;;
|
|
25
|
+
git@gitlab.com:*) pre="git@gitlab.com:" ;;
|
|
26
|
+
ssh://git@gitlab.com/*) pre="ssh://git@gitlab.com/" ;;
|
|
27
|
+
*) return 1 ;;
|
|
28
|
+
esac
|
|
29
|
+
p="${u:${#pre}}"
|
|
30
|
+
p="${p%/}"
|
|
31
|
+
p="${p%.git}"
|
|
32
|
+
case "$p" in
|
|
33
|
+
/* | */ | *//* | */.* | .* | *..* | */-/* | *[!A-Za-z0-9._/-]*) return 1 ;;
|
|
34
|
+
?*/?*) printf '%s\n' "$p" ;;
|
|
35
|
+
*) return 1 ;;
|
|
36
|
+
esac
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# Neutral glab: cwd /, no git dir, host pinned so an ambient GITLAB_HOST
|
|
40
|
+
# cannot send the token elsewhere.
|
|
41
|
+
_e10_glab() {
|
|
42
|
+
(
|
|
43
|
+
cd / || exit 1
|
|
44
|
+
unset GIT_DIR GIT_WORK_TREE GL_HOST GITLAB_API_HOST
|
|
45
|
+
export GITLAB_HOST=gitlab.com
|
|
46
|
+
command glab "$@"
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
[ "${_LOKI_ORIGIN_PINNED:-}" = "1" ] || die "origin not pinned (_LOKI_ORIGIN_PINNED=1 required)"
|
|
51
|
+
url="${_LOKI_PINNED_ORIGIN:-}"
|
|
52
|
+
proj="$(_e10_gitlab_project_from_url "$url")" \
|
|
53
|
+
|| die "pinned origin refused: not a literal gitlab.com https or ssh GROUP/PROJECT URL"
|
|
54
|
+
|
|
55
|
+
mode="${1:-}"
|
|
56
|
+
shift || true
|
|
57
|
+
[ "$mode" = "push-mr" ] || die "usage: engine10-push-gitlab.sh push-mr <repo-dir> <branch> <title> <body-file> [--draft]"
|
|
58
|
+
[ "$#" -ge 4 ] && [ "$#" -le 5 ] || die "usage: push-mr <repo-dir> <branch> <title> <body-file> [--draft]"
|
|
59
|
+
dir="$1" branch="$2" title="$3" body="$4" draft=()
|
|
60
|
+
if [ "$#" -eq 5 ]; then
|
|
61
|
+
[ "$5" = "--draft" ] || die "unknown flag: $5"
|
|
62
|
+
draft=(--draft)
|
|
63
|
+
fi
|
|
64
|
+
[ -f "$body" ] || die "body file not found: $body"
|
|
65
|
+
dir="$(cd "$dir" 2>/dev/null && pwd -P)" || die "repo dir not found"
|
|
66
|
+
git check-ref-format --branch "$branch" >/dev/null 2>&1 || die "bad branch name"
|
|
67
|
+
case "$branch" in
|
|
68
|
+
main | master | HEAD) die "Not pushing branch '$branch': Loki never pushes directly to a default branch." ;;
|
|
69
|
+
esac
|
|
70
|
+
cur="$(git -C "$dir" config --get remote.origin.url 2>/dev/null)" || cur=""
|
|
71
|
+
[ "$cur" = "$url" ] || die "Not pushing branch '$branch': origin changed during the run; Loki does not push to a destination the agent could have chosen."
|
|
72
|
+
|
|
73
|
+
enc="${proj//\//%2F}"
|
|
74
|
+
def="$(_e10_glab api "projects/$enc" 2>/dev/null \
|
|
75
|
+
| python3 -c 'import json,sys; print(json.load(sys.stdin).get("default_branch") or "")' 2>/dev/null)" || def=""
|
|
76
|
+
[ -n "$def" ] || die "Not pushing branch '$branch': could not resolve the default branch of $proj."
|
|
77
|
+
[ "$branch" != "$def" ] || die "Not pushing branch '$branch': it is the default branch of $proj."
|
|
78
|
+
|
|
79
|
+
tmp="$(mktemp -d "${TMPDIR:-/tmp}/loki-push-gl.XXXXXX")" || die "mktemp failed" 1
|
|
80
|
+
trap 'rm -rf "$tmp"' EXIT
|
|
81
|
+
git init -q --template= "$tmp" >/dev/null 2>&1 \
|
|
82
|
+
&& git -C "$tmp" fetch -q --no-tags --update-shallow "$dir" "+refs/heads/$branch:refs/heads/$branch" >/dev/null 2>&1 \
|
|
83
|
+
&& git -C "$tmp" rev-parse -q --verify "refs/heads/$branch" >/dev/null 2>&1 \
|
|
84
|
+
|| die "could not stage branch '$branch' in a fresh repo"
|
|
85
|
+
git -C "$tmp" push -q "$url" "refs/heads/$branch:refs/heads/$branch" || die "push failed (rc=$?)"
|
|
86
|
+
|
|
87
|
+
mr="$(_e10_glab mr list --repo "$proj" --source-branch "$branch" --output json 2>/dev/null \
|
|
88
|
+
| python3 -c 'import json,sys; d=json.load(sys.stdin); print(d[0].get("web_url","") if d else "")' 2>/dev/null)" \
|
|
89
|
+
|| die "glab mr list failed"
|
|
90
|
+
if [ -z "$mr" ]; then
|
|
91
|
+
mr="$(_e10_glab mr create --repo "$proj" --source-branch "$branch" --title "$title" \
|
|
92
|
+
--description "$(cat "$body")" --yes "${draft[@]}" | grep -Eo 'https://gitlab\.com/[^[:space:]]+' | tail -n 1)" \
|
|
93
|
+
|| die "glab mr create failed"
|
|
94
|
+
[ -n "$mr" ] || die "glab mr create printed no URL"
|
|
95
|
+
fi
|
|
96
|
+
printf '%s\n' "$mr"
|
|
@@ -41,8 +41,66 @@ _LOKI_ORIGIN_PINNED="$_e10_pinned"
|
|
|
41
41
|
_LOKI_PINNED_ORIGIN="$_e10_origin"
|
|
42
42
|
|
|
43
43
|
[ "$_LOKI_ORIGIN_PINNED" = "1" ] || die "origin not pinned (_LOKI_ORIGIN_PINNED=1 required)"
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
|
|
45
|
+
# E-41: the eval harness (eval/loki10/harness.py) pins origin to a local bare
|
|
46
|
+
# repo and scores "PR opened" as a branch landing there. Only an absolute,
|
|
47
|
+
# colon-free path whose own git dir is itself a bare repo qualifies; anything
|
|
48
|
+
# else (URL, scp host:path, relative, non-bare, a subdirectory) takes the
|
|
49
|
+
# GitHub path below and its refusal.
|
|
50
|
+
_e10_local_bare() {
|
|
51
|
+
local p="$1" abs
|
|
52
|
+
case "$p" in /*) ;; *) return 1 ;; esac
|
|
53
|
+
case "$p" in *:*) return 1 ;; esac
|
|
54
|
+
abs="$(cd "$p" 2>/dev/null && pwd -P)" || return 1
|
|
55
|
+
[ "$(git -C "$abs" rev-parse --is-bare-repository 2>/dev/null)" = "true" ] || return 1
|
|
56
|
+
[ "$(git -C "$abs" rev-parse --absolute-git-dir 2>/dev/null)" = "$abs" ]
|
|
57
|
+
}
|
|
58
|
+
_e10_local=""
|
|
59
|
+
_e10_git_env="GIT_DIR GIT_WORK_TREE GIT_COMMON_DIR GIT_CONFIG_PARAMETERS GIT_CONFIG_COUNT"
|
|
60
|
+
# shellcheck disable=SC2086 # word-split list of variable names
|
|
61
|
+
if (unset $_e10_git_env; _e10_local_bare "$_LOKI_PINNED_ORIGIN"); then
|
|
62
|
+
_e10_local=1
|
|
63
|
+
else
|
|
64
|
+
_e10_repo="$(_loki_github_repo_from_url "$_LOKI_PINNED_ORIGIN")" \
|
|
65
|
+
|| die "pinned origin refused: $(_loki_origin_refusal "$_LOKI_PINNED_ORIGIN")"
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
# Local push: like _loki_trusted_push, the branch is fetched into a fresh
|
|
69
|
+
# template-less repo and pushed from there, so the agent repo's config
|
|
70
|
+
# (pushInsteadOf, remote.<url>.receivepack) and hooks never apply. The bare
|
|
71
|
+
# repo's own receive-side hooks (and its core.hooksPath) DO run: git does not
|
|
72
|
+
# pass -c core.hooksPath to the local receive-pack. What protects them is the
|
|
73
|
+
# allowlisted env below: they inherit it, so no token, SSH agent or askpass
|
|
74
|
+
# reaches them.
|
|
75
|
+
_e10_git() {
|
|
76
|
+
env -i PATH="$PATH" HOME=/dev/null TMPDIR="${TMPDIR:-/tmp}" GIT_CONFIG_NOSYSTEM=1 \
|
|
77
|
+
GIT_CONFIG_GLOBAL=/dev/null GIT_TERMINAL_PROMPT=0 git -c core.hooksPath=/dev/null "$@"
|
|
78
|
+
}
|
|
79
|
+
_e10_local_push() {
|
|
80
|
+
local dir="$1" branch="$2" origin="$_LOKI_PINNED_ORIGIN" def tmp rc=1
|
|
81
|
+
dir="$(cd "$dir" 2>/dev/null && pwd -P)" || return 1
|
|
82
|
+
git check-ref-format --branch "$branch" >/dev/null 2>&1 || return 1
|
|
83
|
+
case "$branch" in
|
|
84
|
+
main | master | HEAD)
|
|
85
|
+
log_warn "Not pushing branch '$branch': Loki never pushes directly to a default branch."
|
|
86
|
+
return 2 ;;
|
|
87
|
+
esac
|
|
88
|
+
def="$(_e10_git -C "$origin" symbolic-ref --short HEAD 2>/dev/null)" || def=""
|
|
89
|
+
if [ -z "$def" ] || [ "$branch" = "$def" ]; then
|
|
90
|
+
log_warn "Not pushing branch '$branch': it is (or may be) the default branch of $origin."
|
|
91
|
+
return 2
|
|
92
|
+
fi
|
|
93
|
+
tmp="$(mktemp -d "${TMPDIR:-/tmp}/loki-push.XXXXXX")" || return 1
|
|
94
|
+
if _e10_git init -q --template= "$tmp" >/dev/null 2>&1 \
|
|
95
|
+
&& _e10_git -C "$tmp" fetch -q --no-tags --update-shallow "$dir" \
|
|
96
|
+
"+refs/heads/$branch:refs/heads/$branch" >/dev/null 2>&1 \
|
|
97
|
+
&& _e10_git -C "$tmp" rev-parse -q --verify "refs/heads/$branch" >/dev/null 2>&1; then
|
|
98
|
+
rc=0
|
|
99
|
+
_e10_git -C "$tmp" push -q "$origin" "refs/heads/$branch:refs/heads/$branch" || rc=$?
|
|
100
|
+
fi
|
|
101
|
+
rm -rf "$tmp"
|
|
102
|
+
return "$rc"
|
|
103
|
+
}
|
|
46
104
|
|
|
47
105
|
_e10_gh() { _loki_with_github_tokens _loki_run_neutral "$_e10_repo" command gh "$@"; }
|
|
48
106
|
|
|
@@ -57,6 +115,11 @@ case "$mode" in
|
|
|
57
115
|
draft=(--draft)
|
|
58
116
|
fi
|
|
59
117
|
[ -f "$body" ] || die "body file not found: $body"
|
|
118
|
+
if [ -n "$_e10_local" ]; then
|
|
119
|
+
_e10_local_push "$dir" "$branch" || die "push refused or failed (rc=$?)"
|
|
120
|
+
printf 'local://%s#%s\n' "$_LOKI_PINNED_ORIGIN" "$branch"
|
|
121
|
+
exit 0
|
|
122
|
+
fi
|
|
60
123
|
_loki_trusted_push _loki_with_github_tokens "$dir" "$branch" || die "push refused or failed (rc=$?)"
|
|
61
124
|
url="$(_e10_gh pr list --repo "$_e10_repo" --head "$branch" --state open --json url --jq '.[0].url')" \
|
|
62
125
|
|| die "gh pr list failed"
|
|
@@ -71,12 +134,14 @@ case "$mode" in
|
|
|
71
134
|
[ "$#" -eq 2 ] || die "usage: comment <pr-number> <body-file>"
|
|
72
135
|
case "$1" in '' | *[!0-9]*) die "pr number must be digits" ;; esac
|
|
73
136
|
[ -f "$2" ] || die "body file not found: $2"
|
|
137
|
+
[ -z "$_e10_local" ] || { log_info "local origin: no PR to comment on (no-op)"; exit 0; }
|
|
74
138
|
_e10_gh pr comment "$1" --repo "$_e10_repo" --body-file "$2" || die "gh pr comment failed"
|
|
75
139
|
;;
|
|
76
140
|
status)
|
|
77
141
|
[ "$#" -eq 3 ] || die "usage: status <sha> <state> <description>"
|
|
78
142
|
[[ "$1" =~ ^[0-9a-f]{40}$ ]] || die "sha must be 40 lowercase hex characters"
|
|
79
143
|
case "$2" in pending | success | failure | error) ;; *) die "bad state: $2" ;; esac
|
|
144
|
+
[ -z "$_e10_local" ] || { log_info "local origin: no commit status to set (no-op)"; exit 0; }
|
|
80
145
|
_e10_gh api "repos/$_e10_repo/statuses/$1" -f "state=$2" -f context=loki/deep-verify \
|
|
81
146
|
-f "description=$3" >/dev/null || die "gh api status failed"
|
|
82
147
|
;;
|
package/dashboard/__init__.py
CHANGED
package/docs/INSTALLATION.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The flagship product of [Autonomi](https://www.autonomi.dev/). Loki Mode is a spec-driven autonomous builder with a built-in trust layer that takes any spec to a deployed product and verifies completion with evidence (quality gates plus a completion council), not just a "done" claim. Complete installation instructions for all platforms and use cases.
|
|
4
4
|
|
|
5
|
-
**Version:** v9.
|
|
5
|
+
**Version:** v9.80.1
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
package/docs/dev/tmp-cleanup.md
CHANGED
|
@@ -62,11 +62,11 @@ loki_run_tmp_create() {
|
|
|
62
62
|
# usage string, a filesystem block, an empty result, or a concatenation of any
|
|
63
63
|
# of those is rejected on every platform.
|
|
64
64
|
loki_run_tmp_stat_field() {
|
|
65
|
-
local gnu_fmt="$1" bsd_fmt="$2"
|
|
65
|
+
local gnu_fmt="$1" bsd_fmt="$2" target_path="$3" value
|
|
66
66
|
|
|
67
|
-
value="$(stat -c "$gnu_fmt" -- "$
|
|
67
|
+
value="$(stat -c "$gnu_fmt" -- "$target_path" 2>/dev/null)" || value=''
|
|
68
68
|
case "$value" in
|
|
69
|
-
'' | *[!0-9]*) value="$(stat -f "$bsd_fmt" -- "$
|
|
69
|
+
'' | *[!0-9]*) value="$(stat -f "$bsd_fmt" -- "$target_path" 2>/dev/null)" || value='' ;;
|
|
70
70
|
esac
|
|
71
71
|
case "$value" in
|
|
72
72
|
'' | *[!0-9]*) return 1 ;;
|
package/docs/v10/BOARD.md
CHANGED
|
@@ -293,37 +293,76 @@ set is declared to avoid overlap with those and with each other.
|
|
|
293
293
|
| S-231 | BACKLOG 52: the Moat suite CI check reads as moat proven at 0 of 9 | .github/workflows/test.yml (moat-suite job name only) | LOW | gh api required_status_checks for main does not list Moat suite (else report-only); git grep -n "name: Moat suite" -- .github prints nothing; git grep -n "Moat suite" -- tests scripts .github lists only the step-summary heading; the next push shows the renamed check | parked@2026-09-27T21:43Z | Source: 20:59Z cut. Batch 10 (wf_6fed529f-a3d), build then review. Paused by CEO P0 (Loki 10 engine) before review; built commit 8dddd2d3 kept on branch worktree-wf_6fed529f-a3d-13. |
|
|
294
294
|
| S-232 | autonomy/loki is linted only inside the sentrux test; the lint suite schedules big files last | tests/run-shellcheck.sh, tests/test-sentrux-init-rules.sh (T6 only) | LOW | LOKI_SHELLCHECK_JOBS=4 bash tests/run-shellcheck.sh exits 0, prints Checked ./autonomy/loki, counts match the pre-change capture plus loki; time bash tests/test-sentrux-init-rules.sh exits 0 with 8 passed under 10s; grep -c shellcheck tests/test-sentrux-init-rules.sh prints 0; both timings reported | parked@2026-09-27T21:43Z | Source: 20:59Z cut. Paused by CEO P0 (Loki 10 engine). |
|
|
295
295
|
| S-233 | BACKLOG 72 remainder: refused resume does not name the blocking file or where the earlier commits are | autonomy/run.sh (setup_agent_branch resume block around the no-overwrite-ignore checkout only), tests/test-refused-resume-warning.sh (new) | LOW | bash tests/test-refused-resume-warning.sh exits 0 with the warning naming the conflicting ignored file and the recorded branch; bash tests/test-branch-lifecycle.sh exits 0 | parked@2026-09-27T21:43Z | Source: 20:59Z cut. Paused by CEO P0 (Loki 10 engine). |
|
|
296
|
+
| EV-1 | Eval runner and scorer (eval/loki10/harness.py, run.sh, summarize): fresh clone per run, local bare remote, hidden tests after the arm, nonce-verified grading, pre-arm task_invalid checks, provider-only cost | eval/loki10/{harness.py,run.sh,summarize,lib-tmp.sh,README.md,test-harness.sh,fixtures/} | HIGH | bash eval/loki10/test-harness.sh | merged@2026-09-27T22:55Z | D29 gate. Built d63fc5c2 (61 passed, 0 failed); adversarial review REJECT on 3cf723be fixed item by item; merging EV-3 and the task nonce fixes on branch worktree-agent-ad850d483c4960e62. d63fc5c2..68bfbc4f (test-harness 77 passed; no-op baseline graded all 29 tasks not completed, none task_invalid, 108s); main 694866fc. |
|
|
297
|
+
| EV-2 | Eval task set: 25 or more real tasks with hidden tests (augmentiq, public issues with merged-fix tests, quickstart briefs) | eval/loki10/tasks/ | HIGH | python3 eval/loki10/harness.py validate eval/loki10/tasks/*/ | merged@2026-09-27T22:34Z | 29 tasks (augmentiq 1: the repo has only 3 issues; public 14; quickstart 14); re-review APPROVE (every public task red at ref, green at fix); on main 51b37c6f. |
|
|
298
|
+
| EV-3 | Eval arm config isolation: fresh CLAUDE_CONFIG_DIR per run, one credential passed only to the arm | eval/loki10/harness.py (arm_env, arm_auth), test-harness.sh leg 12, README | HIGH | bash eval/loki10/test-harness.sh | merged@2026-09-27T22:55Z | 451ba56c; security review CONCERN (test could not catch a leak) fixed: M1/M2/M4 leak mutations each red; merging into EV-1 branch. 451ba56c (merged via EV-1 branch); main 694866fc. |
|
|
299
|
+
| EV-7 | Task nonce fix: aiq-52 and the 14 qs tasks print LOKI_EVAL_NONCE only after all assertions pass | eval/loki10/tasks/aiq-52-searchbar, eval/loki10/tasks/qs-* | MEDIUM | a no-op baseline over all 29 tasks grades every task not completed, none task_invalid | merged@2026-09-27T22:55Z | Found by the EV-1 audit: 15 tasks could never pass under nonce grading. Assigned to the EV-1 builder with the baseline run. 1a17ad92 (15 tasks print the nonce after assertions; aiq-52 genuine pass at b65b0752 "Tests 3 passed (3)"); main 694866fc. |
|
|
300
|
+
| EV-4 | Raw claude -p arm: real runs on the gate tasks at the gate model and budget | eval/loki10 results under eval/loki10/results/ (gitignored) plus a summary | HIGH | eval/loki10/run.sh --arm raw-claude --task <id> records completed, time_to_pr_s and provider cost | merged@2026-09-27T23:17Z | Smoke on 3 public tasks now, from a scratch clone of the EV-1 branch with EV-3 merged; the full arm runs when EV-1 lands. Smoke 23:02Z: 3/3 completed, p50 34s, p90 45s, $0.1944 per completed (`summarize --markdown`), 0 capped; full 29-task arm runs next. Full arm: 27/29, p50 39s, p90 68s, $0.2363 per completed (results in ~/loki-ci-logs/eval-raw-claude-20260927T231653Z). |
|
|
301
|
+
| EV-5 | Legacy arm: loki start at the same model and 15-minute cap | same as EV-4 | HIGH | eval/loki10/run.sh --arm legacy --task <id> records completed or capped | building@2026-09-27T22:44Z | Smoke on 1 public task now; capped runs score not completed. Smoke on pub-more-itertools-1192: hidden_pass true, pr_opened false, completed false (results row; arm_stdout.log: "committed as 4f3f20a ... but not pushed ... this session's rules say commits stay local only"); full 29-task arm started 23:27Z. Budget exception: a 29-task measurement at a 900s cap per task and --parallel 3 runs up to about 150 minutes by design (agent status 23:32Z); it is a measurement, not a build. |
|
|
302
|
+
| EV-6 | Gate report: results into docs/v10/METRICS.md and the CHANGELOG block (completion rate, p50/p90 time to PR, cost per completed task, misses) | eval/loki10/summarize, docs/v10/METRICS.md | MEDIUM | eval/loki10/summarize --markdown over the three arms renders every gate number, including misses | merged@2026-09-28T00:27Z | Runs after the first full arm pass; Chief of Staff publishes. Staffed in engine10-gate-push (wf_1d47133f-7c7). Review APPROVE (publish_gate.sh and test-publish-gate.sh); merges together with E-33 (its test is red without gate_report.py). Merged 23b20e6f (train E12): shard coverage 19/0, drift 6/0, engine10 349 pass 0 fail, tsc exit 0. test-publish-gate 11/0. |
|
|
296
303
|
| E-00 | ORPHAN guard: pulse flags long-running worktree run.sh and /tmp/loki-run-*.sh processes; timeout -k 10 on run.sh/loki launches | scripts/v10-pulse.sh, tests/test-v10-pulse.sh, tests/test-timeout-escalates.sh, about 50 test launch sites | MEDIUM | bash tests/test-v10-pulse.sh and bash tests/test-timeout-escalates.sh | merged@2026-09-27T22:24Z | D29 incident guard. Review CONCERN (guard matched only literal paths); rework b26c102a catches $LOKI and TBIN-style launches (reviewer mutation on test-why-honest-report.sh goes red: `bash tests/test-timeout-escalates.sh` 0 passed, 1 failed). Main a5f049d2 pushed 22:24:22 (`git ls-remote origin refs/heads/main` = a5f049d2); pulse 90 passed, 0 failed. |
|
|
297
304
|
| E-01 | Event log, schema and shared types | loki-ts/src/engine10/events.ts, loki-ts/src/engine10/types.ts, loki-ts/tests/engine10/events.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/events.test.ts | merged@2026-09-27T22:11Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on none Phase A (wf_f5dde039-0c5), build then review. Review CONCERN on e825568c (stale deep limits and push mode vs revised ENGINE.md), fixed in 4138471f; main 4138471f pushed 22:10:59 (`git ls-remote origin refs/heads/main` = 4138471f; tests/engine10 25 pass, 0 fail). |
|
|
298
|
-
| E-02 | State machine skeleton, resume, cap, optional loader | loki-ts/src/engine10/machine.ts, loki-ts/tests/engine10/machine.test.ts, loki-ts/tests/engine10/budget.test.ts | HIGH | cd loki-ts && bun test tests/engine10/machine.test.ts tests/engine10/budget.test.ts |
|
|
299
|
-
| E-03 | Supervisor/worker split, Rule of Two, engine.json marker | loki-ts/src/engine10/supervisor.ts, loki-ts/src/engine10/worker.ts, loki-ts/tests/engine10/rule_of_two.test.ts | HIGH | cd loki-ts && bun test tests/engine10/rule_of_two.test.ts |
|
|
300
|
-
| E-04 | Intake (no PRD, already-done detection) | loki-ts/src/engine10/stages/intake.ts, loki-ts/src/engine10/fetch_issue.ts, loki-ts/src/engine10/repomap.ts, loki-ts/tests/engine10/intake.test.ts, loki-ts/tests/engine10/fixtures/intake/ | MEDIUM | cd loki-ts && bun test tests/engine10/intake.test.ts |
|
|
301
|
-
| E-05 | Test map and real runner detection | loki-ts/src/engine10/testmap.ts, loki-ts/tests/engine10/testmap.test.ts, loki-ts/tests/engine10/fixtures/testmap/ | MEDIUM | cd loki-ts && bun test tests/engine10/testmap.test.ts |
|
|
302
|
-
| E-06 | Cost capture into cost-summary.py records | loki-ts/src/engine10/cost.ts, loki-ts/tests/engine10/cost.test.ts, loki-ts/tests/engine10/fixtures/cost/ | MEDIUM | cd loki-ts && bun test tests/engine10/cost.test.ts | merged@2026-09-27T22:11Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on none Phase A (wf_f5dde039-0c5), build then review. Review APPROVE on c5a7d395 (cherry-picked 33327ca1); main 4138471f. Follow-up: write .loki/metrics/efficiency/iteration-N.json per ENGINE.md section 10. |
|
|
303
|
-
| E-07 | Session wrapper (process group, heartbeat, model override) | loki-ts/src/engine10/session.ts, loki-ts/tests/engine10/session.test.ts, loki-ts/tests/engine10/fixtures/session/ | MEDIUM | cd loki-ts && bun test tests/engine10/session.test.ts |
|
|
304
|
-
| E-08 | Implement stage and brief | loki-ts/src/engine10/stages/implement.ts, loki-ts/tests/engine10/implement.test.ts, loki-ts/tests/engine10/fixtures/implement/ | MEDIUM | cd loki-ts && bun test tests/engine10/implement.test.ts |
|
|
305
|
-
| E-09 | Fast verify | loki-ts/src/engine10/stages/verify.ts, loki-ts/tests/engine10/verify.test.ts, loki-ts/tests/engine10/fixtures/verify/ | MEDIUM | cd loki-ts && bun test tests/engine10/verify.test.ts |
|
|
306
|
-
| E-10 | Seal (signed receipt, NOT PROVEN) | loki-ts/src/engine10/stages/seal.ts, loki-ts/tests/engine10/seal.test.ts | HIGH | cd loki-ts && bun test tests/engine10/seal.test.ts |
|
|
307
|
-
| E-11 | Trusted push and PR | autonomy/lib/engine10-push.sh, loki-ts/src/engine10/stages/pr.ts, tests/test-engine10-push.sh, loki-ts/tests/engine10/pr.test.ts | HIGH | bash tests/test-engine10-push.sh |
|
|
305
|
+
| E-02 | State machine skeleton, resume, cap, optional loader | loki-ts/src/engine10/machine.ts, loki-ts/tests/engine10/machine.test.ts, loki-ts/tests/engine10/budget.test.ts | HIGH | cd loki-ts && bun test tests/engine10/machine.test.ts tests/engine10/budget.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01 Phase B (engine10-phaseB), build then review. Review CONCERN; rework in engine10-phaseB-rework. 761fbad8 (HIGH re-review APPROVE); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
306
|
+
| E-03 | Supervisor/worker split, Rule of Two, engine.json marker | loki-ts/src/engine10/supervisor.ts, loki-ts/src/engine10/worker.ts, loki-ts/tests/engine10/rule_of_two.test.ts | HIGH | cd loki-ts && bun test tests/engine10/rule_of_two.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01, E-02 Phase B (engine10-phaseB), build then review. Review CONCERN; rework in engine10-phaseB-rework. 1b08ea30 (HIGH re-review APPROVE); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
307
|
+
| E-04 | Intake (no PRD, already-done detection) | loki-ts/src/engine10/stages/intake.ts, loki-ts/src/engine10/fetch_issue.ts, loki-ts/src/engine10/repomap.ts, loki-ts/tests/engine10/intake.test.ts, loki-ts/tests/engine10/fixtures/intake/ | MEDIUM | cd loki-ts && bun test tests/engine10/intake.test.ts | merged@2026-09-27T22:36Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-02, E-03 Phase B (engine10-phaseB), build then review. 518f7e89 (review APPROVE); on main (`git ls-remote origin refs/heads/main` = 646701bc; tests/engine10 88 pass, 0 fail; tsc 0 errors). |
|
|
308
|
+
| E-05 | Test map and real runner detection | loki-ts/src/engine10/testmap.ts, loki-ts/tests/engine10/testmap.test.ts, loki-ts/tests/engine10/fixtures/testmap/ | MEDIUM | cd loki-ts && bun test tests/engine10/testmap.test.ts | merged@2026-09-27T22:36Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on none Phase A (wf_f5dde039-0c5), build then review. Review CONCERN (fixture path, evidence, commands, bunfig, reference grep); rework in phase B. a0cbc7b8 (rework review APPROVE); on main (`git ls-remote origin refs/heads/main` = 646701bc; tests/engine10 88 pass, 0 fail; tsc 0 errors). |
|
|
309
|
+
| E-06 | Cost capture into cost-summary.py records | loki-ts/src/engine10/cost.ts, loki-ts/tests/engine10/cost.test.ts, loki-ts/tests/engine10/fixtures/cost/ | MEDIUM | cd loki-ts && bun test tests/engine10/cost.test.ts | merged@2026-09-27T22:11Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on none Phase A (wf_f5dde039-0c5), build then review. Review APPROVE on c5a7d395 (cherry-picked 33327ca1); main 4138471f. Follow-up: write .loki/metrics/efficiency/iteration-N.json per ENGINE.md section 10. E-06b efficiency records (d65d90e2, review APPROVE) plus cost_source provider in 4cc3da48. |
|
|
310
|
+
| E-07 | Session wrapper (process group, heartbeat, model override) | loki-ts/src/engine10/session.ts, loki-ts/tests/engine10/session.test.ts, loki-ts/tests/engine10/fixtures/session/ | MEDIUM | cd loki-ts && bun test tests/engine10/session.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01, E-06 Phase B (engine10-phaseB), build then review. Review CONCERN; rework in engine10-phaseB-rework. 6c2f9f07 (re-review CONCERN was a test gap only; follow-up E-TG); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
311
|
+
| E-08 | Implement stage and brief | loki-ts/src/engine10/stages/implement.ts, loki-ts/tests/engine10/implement.test.ts, loki-ts/tests/engine10/fixtures/implement/ | MEDIUM | cd loki-ts && bun test tests/engine10/implement.test.ts | merged@2026-09-27T22:36Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-05, E-07 Phase B (engine10-phaseB), build then review. 646701bc (review APPROVE); on main (`git ls-remote origin refs/heads/main` = 646701bc; tests/engine10 88 pass, 0 fail; tsc 0 errors). |
|
|
312
|
+
| E-09 | Fast verify | loki-ts/src/engine10/stages/verify.ts, loki-ts/tests/engine10/verify.test.ts, loki-ts/tests/engine10/fixtures/verify/ | MEDIUM | cd loki-ts && bun test tests/engine10/verify.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-02, E-05 Phase B (engine10-phaseB), build then review. Review CONCERN; rework in engine10-phaseB-rework. 779983fa (re-review CONCERN was a test gap only; follow-up E-TG); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
313
|
+
| E-10 | Seal (signed receipt, NOT PROVEN) | loki-ts/src/engine10/stages/seal.ts, loki-ts/tests/engine10/seal.test.ts | HIGH | cd loki-ts && bun test tests/engine10/seal.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01, E-09 Phase B (engine10-phaseB), build then review. Review CONCERN; rework in engine10-phaseB-rework. 5b53ccb0 (HIGH re-review APPROVE); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
314
|
+
| E-11 | Trusted push and PR | autonomy/lib/engine10-push.sh, loki-ts/src/engine10/stages/pr.ts, tests/test-engine10-push.sh, loki-ts/tests/engine10/pr.test.ts | HIGH | bash tests/test-engine10-push.sh | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-03, E-10 Shell half (engine10-push.sh) building early (wf_f70c455a-69e); stages/pr.ts after E-01. Shell half (engine10-push.sh) review APPROVE on 1a6bc2c4, merged in main 6f2dfd9c (`bash tests/test-engine10-push.sh` 15 passed, 0 failed); stages/pr.ts still to build. TS half (stages/pr.ts) building as E-11b in engine10-wave2. TS half 2a3e3264 review APPROVE; main 694866fc. |
|
|
308
315
|
| E-12 | CLI entry behind LOKI_ENGINE=v10 | loki-ts/src/engine10/cli.ts, loki-ts/src/cli.ts (case engine10 before default at line 303), bin/loki (block between lines 244 and 246), tests/test-engine10-dispatch.sh, loki-ts/tests/engine10/cli.test.ts | MEDIUM | bash tests/test-engine10-dispatch.sh | merged@2026-09-27T22:18Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-03 Building early (wf_f70c455a-69e), build then review. Review CONCERN (one-word v10 routing trusted the telemetry allowlist, missing estimate/intent/outcomes); fixed in 6f2dfd9c (one-word args stay legacy; `bash tests/test-engine10-dispatch.sh` 33 passed, 0 failed); main 6f2dfd9c pushed 22:17:49. |
|
|
309
|
-
| E-13 | Live output and 5-line summary | loki-ts/src/engine10/output.ts, loki-ts/tests/engine10/output.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/output.test.ts |
|
|
310
|
-
| E-14 | Thin-path end to end | loki-ts/tests/engine10/e2e.test.ts, loki-ts/tests/engine10/fixtures/e2e/ | MEDIUM | cd loki-ts && bun test tests/engine10/e2e.test.ts |
|
|
311
|
-
| E-15 | Wall author (blind, hashed) | loki-ts/src/engine10/stages/wall.ts, loki-ts/tests/engine10/wall.test.ts, loki-ts/tests/engine10/fixtures/wall/ | MEDIUM | cd loki-ts && bun test tests/engine10/wall.test.ts |
|
|
312
|
-
| E-16 | Plan (10 lines or fewer) | loki-ts/src/engine10/stages/plan.ts, loki-ts/tests/engine10/plan.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/plan.test.ts |
|
|
313
|
-
| E-17 | Fix rounds and failure grouping | loki-ts/src/engine10/stages/fix.ts, loki-ts/src/engine10/failures.ts, loki-ts/tests/engine10/fix.test.ts, loki-ts/tests/engine10/failures.test.ts, loki-ts/tests/engine10/fixtures/failures/ | MEDIUM | cd loki-ts && bun test tests/engine10/fix.test.ts tests/engine10/failures.test.ts |
|
|
314
|
-
| E-18 | Per-repo cache by tree hash | loki-ts/src/engine10/cache.ts, loki-ts/tests/engine10/cache.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/cache.test.ts |
|
|
315
|
-
| E-19 | Hard cap and DRAFT PR body | loki-ts/src/engine10/pr_body.ts, loki-ts/tests/engine10/cap.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/cap.test.ts |
|
|
316
|
-
| E-20 | ETA | loki-ts/src/engine10/eta.ts, loki-ts/tests/engine10/eta.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/eta.test.ts |
|
|
317
|
-
| E-21 | loki status | loki-ts/src/engine10/status.ts, loki-ts/tests/engine10/status.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/status.test.ts |
|
|
318
|
-
| E-22 | loki verify | loki-ts/src/engine10/verify_cmd.ts, loki-ts/tests/engine10/verify_cmd.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/verify_cmd.test.ts |
|
|
319
|
-
| E-23 | Deep verify (async, token-less worker) | loki-ts/src/engine10/stages/deep.ts, loki-ts/tests/engine10/deep.test.ts, loki-ts/tests/engine10/fixtures/deep/ | MEDIUM | cd loki-ts && bun test tests/engine10/deep.test.ts |
|
|
320
|
-
| E-24 | Dashboard over SSE | loki-ts/src/engine10/dashboard/server.ts, loki-ts/src/engine10/dashboard/page.ts, loki-ts/tests/engine10/dashboard.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/dashboard.test.ts |
|
|
321
|
-
| E-25 | Adapter interface and GitHub adapter | loki-ts/src/engine10/adapters/types.ts, loki-ts/src/engine10/adapters/index.ts, loki-ts/src/engine10/adapters/github.ts, loki-ts/tests/engine10/adapters_github.test.ts, loki-ts/tests/engine10/fixtures/adapters-github/ | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_github.test.ts |
|
|
322
|
-
| E-26 | GitLab adapter (issue in, MR out) | loki-ts/src/engine10/adapters/gitlab.ts, autonomy/lib/engine10-push-gitlab.sh, loki-ts/tests/engine10/adapters_gitlab.test.ts, tests/test-engine10-push-gitlab.sh, loki-ts/tests/engine10/fixtures/adapters-gitlab/ | HIGH | bash tests/test-engine10-push-gitlab.sh |
|
|
323
|
-
| E-27 | Jira read adapter | loki-ts/src/engine10/adapters/jira.ts, loki-ts/tests/engine10/adapters_jira.test.ts, loki-ts/tests/engine10/fixtures/adapters-jira/ | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_jira.test.ts |
|
|
324
|
-
| E-28 | Slack notify adapter | loki-ts/src/engine10/adapters/slack.ts, loki-ts/tests/engine10/adapters_slack.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_slack.test.ts |
|
|
325
|
-
| E-29 | Escalation (--deep, logged auto) | loki-ts/src/engine10/escalate.ts, loki-ts/tests/engine10/escalate.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/escalate.test.ts |
|
|
326
|
-
| E-30 | Legacy alias contract (golden routes) | tests/test-engine10-legacy-contract.sh, tests/fixtures/engine10-legacy-routes.txt | MEDIUM | bash tests/test-engine10-legacy-contract.sh |
|
|
316
|
+
| E-13 | Live output and 5-line summary | loki-ts/src/engine10/output.ts, loki-ts/tests/engine10/output.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/output.test.ts | merged@2026-09-27T22:36Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01 Wave 1b (wf_60ffc02a-bf8). b15b2112 (review CONCERN fixed in 4cc3da48: tokens-null wording, injected missing eta path, import errors rethrown); on main (`git ls-remote origin refs/heads/main` = 646701bc; tests/engine10 88 pass, 0 fail; tsc 0 errors). |
|
|
317
|
+
| E-14 | Thin-path end to end | loki-ts/tests/engine10/e2e.test.ts, loki-ts/tests/engine10/fixtures/e2e/ | MEDIUM | cd loki-ts && bun test tests/engine10/e2e.test.ts | parked@2026-09-27T23:36Z | Source: ENGINE.md 21:50Z cut; wave 1; depends on E-01 through E-13 engine10-integrate (wf_c7ce2eb5-e8f). Built 9d9ff7d2 (first real v10 run: 30s, hidden pass, $0.45); HIGH review CONCERN (green only via run.ts glue, over the 5,000-line budget with it); held, absorbed by E-42. Stopped and re-sliced (CEO 23:31Z): its work (9d9ff7d2) is absorbed by E-42, which deletes the run.ts glue. |
|
|
318
|
+
| E-15 | Wall author (blind, hashed) | loki-ts/src/engine10/stages/wall.ts, loki-ts/tests/engine10/wall.test.ts, loki-ts/tests/engine10/fixtures/wall/ | MEDIUM | cd loki-ts && bun test tests/engine10/wall.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-02, E-04, E-07 Wave 2 (engine10-wave2). engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (9a463171); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
319
|
+
| E-16 | Plan (10 lines or fewer) | loki-ts/src/engine10/stages/plan.ts, loki-ts/tests/engine10/plan.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/plan.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-02, E-04, E-07 Wave 2 (engine10-wave2). 03ffe6b8 (review APPROVE); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
320
|
+
| E-17 | Fix rounds and failure grouping | loki-ts/src/engine10/stages/fix.ts, loki-ts/src/engine10/failures.ts, loki-ts/tests/engine10/fix.test.ts, loki-ts/tests/engine10/failures.test.ts, loki-ts/tests/engine10/fixtures/failures/ | MEDIUM | cd loki-ts && bun test tests/engine10/fix.test.ts tests/engine10/failures.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-07, E-09 Wave 2 (engine10-wave2). engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (d88a1078); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
321
|
+
| E-18 | Per-repo cache by tree hash | loki-ts/src/engine10/cache.ts, loki-ts/tests/engine10/cache.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/cache.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-04, E-05 Wave 2 (engine10-wave2). engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (9816234f); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
322
|
+
| E-19 | Hard cap and DRAFT PR body | loki-ts/src/engine10/pr_body.ts, loki-ts/tests/engine10/cap.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/cap.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-02, E-07, E-11 engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (028fcaf0); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
323
|
+
| E-20 | ETA | loki-ts/src/engine10/eta.ts, loki-ts/tests/engine10/eta.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/eta.test.ts | merged@2026-09-27T22:55Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-13, E-18 Wave 2 (engine10-wave2). e22aace4 (review APPROVE); main 694866fc pushed 22:55:38 (`git ls-remote origin refs/heads/main` = 694866fc; tests/engine10 plus spawn guard 185 pass, 0 fail; tsc 0 errors). |
|
|
324
|
+
| E-21 | loki status | loki-ts/src/engine10/status.ts, loki-ts/tests/engine10/status.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/status.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-01, E-12 Wave 2 (engine10-wave2). engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (a5cabf83); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
325
|
+
| E-22 | loki verify | loki-ts/src/engine10/verify_cmd.ts, loki-ts/tests/engine10/verify_cmd.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/verify_cmd.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-10 Wave 2 (engine10-wave2). engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (11ebbe89); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
326
|
+
| E-23 | Deep verify (async, token-less worker) | loki-ts/src/engine10/stages/deep.ts, loki-ts/tests/engine10/deep.test.ts, loki-ts/tests/engine10/fixtures/deep/ | MEDIUM | cd loki-ts && bun test tests/engine10/deep.test.ts | merged@2026-09-27T23:26Z | Source: ENGINE.md 21:50Z cut; wave 2; depends on E-03, E-10, E-11 engine10-integrate (wf_c7ce2eb5-e8f). Review APPROVE (854c93f9); main 44731e0f pushed 23:25:50 (tests/engine10 plus spawn guard 334 pass, 0 fail; engine10 4923 lines). |
|
|
327
|
+
| E-24 | Dashboard over SSE | loki-ts/src/engine10/dashboard/server.ts, loki-ts/src/engine10/dashboard/page.ts, loki-ts/tests/engine10/dashboard.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/dashboard.test.ts | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-01, E-12 Wave 3 (engine10-wave3). Review APPROVE on 85d398e4; tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
328
|
+
| E-25 | Adapter interface and GitHub adapter | loki-ts/src/engine10/adapters/types.ts, loki-ts/src/engine10/adapters/index.ts, loki-ts/src/engine10/adapters/github.ts, loki-ts/tests/engine10/adapters_github.test.ts, loki-ts/tests/engine10/fixtures/adapters-github/ | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_github.test.ts | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-04, E-11 Wave 3 (engine10-wave3). Review APPROVE on cf1a390f; tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
329
|
+
| E-26 | GitLab adapter (issue in, MR out) | loki-ts/src/engine10/adapters/gitlab.ts, autonomy/lib/engine10-push-gitlab.sh, loki-ts/tests/engine10/adapters_gitlab.test.ts, tests/test-engine10-push-gitlab.sh, loki-ts/tests/engine10/fixtures/adapters-gitlab/ | HIGH | bash tests/test-engine10-push-gitlab.sh | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-25 Wave 3 (engine10-wave3). Review APPROVE on e96cb3f4 (HIGH review APPROVE); tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
330
|
+
| E-27 | Jira read adapter | loki-ts/src/engine10/adapters/jira.ts, loki-ts/tests/engine10/adapters_jira.test.ts, loki-ts/tests/engine10/fixtures/adapters-jira/ | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_jira.test.ts | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-25 Wave 3 (engine10-wave3). Review APPROVE on 410fdc06; tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
331
|
+
| E-28 | Slack notify adapter | loki-ts/src/engine10/adapters/slack.ts, loki-ts/tests/engine10/adapters_slack.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/adapters_slack.test.ts | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-13, E-25 Wave 3 (engine10-wave3). Review APPROVE on cda6ffdb; tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
332
|
+
| E-29 | Escalation (--deep, logged auto) | loki-ts/src/engine10/escalate.ts, loki-ts/tests/engine10/escalate.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/escalate.test.ts | merged@2026-09-27T23:13Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-02, E-16 Wave 3 (engine10-wave3). Review APPROVE on dd453b7b; tests/engine10 plus spawn guard 231 pass, 0 fail; test-engine10-push-gitlab 20 passed. |
|
|
333
|
+
| E-30 | Legacy alias contract (golden routes) | tests/test-engine10-legacy-contract.sh, tests/fixtures/engine10-legacy-routes.txt | MEDIUM | bash tests/test-engine10-legacy-contract.sh | merged@2026-09-27T22:36Z | Source: ENGINE.md 21:50Z cut; wave 3; depends on E-12 Building early (wf_f70c455a-69e), build then review. Review CONCERN (no Bun row with extra args); rework in wf_60ffc02a-bf8. 77927604 (review APPROVE); on main (`git ls-remote origin refs/heads/main` = 646701bc; tests/engine10 88 pass, 0 fail; tsc 0 errors). |
|
|
334
|
+
| E-41 | Local-origin push mode so a v10 run can open a "PR" in the eval (bare local origin only, no credentials, hooks env scrubbed) | autonomy/lib/engine10-push.sh, loki-ts/src/engine10/stages/pr.ts, tests/test-engine10-push.sh, loki-ts/tests/engine10/pr.test.ts | HIGH | bash tests/test-engine10-push.sh | merged@2026-09-27T23:26Z | dea31627 plus review fixes; HIGH review CONCERN non-blocking (no remote reached the local path, no token reached any hook); main 44731e0f; test-engine10-push 36 passed. |
|
|
335
|
+
| E-42 | Real entry runs end to end: supervisor and worker main, pr stage only in the supervisor with the pinned origin, stage exports, seal commit fix, CLI invoker markers, in-engine cost records, real model id; absorbs and deletes run.ts | loki-ts/src/engine10/{supervisor,worker,session,cost}.ts, stages/*, tests/engine10/e2e.test.ts | HIGH | LOKI_ENGINE=v10 LOKI_TS_ENTRY=<abs>/loki-ts/src/cli.ts bin/loki "<task>" --no-pr, then eval/loki10/run.sh --arm v10 --task pub-more-itertools-1192 | merged@2026-09-28T00:04Z | engine10-e42 (wf_2111e96d-f6e). Merged 9db2a4ed (train E10, cherry-picked 71a7ac36, 260b034d, 8a6f77dd); train head bun test tests/engine10/ 346 pass 0 fail, tsc exit 0. |
|
|
336
|
+
| E-43 | Stage cost knobs (plan and wall on/off and tier, fix rounds) so the eval measures the full design and cheaper variants | loki-ts/src/engine10/knobs.ts, loki-ts/tests/engine10/knobs.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/knobs.test.ts | parked@2026-09-28T00:04Z | engine10-e42. TL CONCERN (reproduced): defaults planning/development match neither live literal (plan fast, wall planning), a silent cost rise. Parked, superseded by E-45 (same plan/wall tier control, cost-directed); engine has about 12 lines of budget left. |
|
|
337
|
+
| E-44 | Output fixes: status column spacing; token count includes cache tokens | loki-ts/src/engine10/output.ts, loki-ts/tests/engine10/output.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/output.test.ts | merged@2026-09-28T00:04Z | engine10-e42. Merged 9db2a4ed (31ce71a0); TL APPROVE. |
|
|
338
|
+
| E-45 | Cost path for the gate: small tasks skip the separate plan call (implementer plans), Wall author pinned to sonnet with a short prompt and the cached repo map; variant recorded | loki-ts/src/engine10/sizing.ts, loki-ts/tests/engine10/sizing.test.ts, plan/wall wiring | HIGH | cd loki-ts && bun test tests/engine10/sizing.test.ts, then a 5-task v10 measurement before the full arm | building@2026-09-28T00:27Z | CEO directive 23:31Z: target cost per completed task at or below $0.2363 (raw claude -p baseline). engine10-gate-push. Opus CONCERN (reproduced): repomap caps at 2000 files so the over-3000 rule never fires; truncated map must size normal. Rework dispatched with a Wall tier assertion. |
|
|
339
|
+
| E-52 | Eval harness passes LOKI_TS_ENTRY and an allowlist of LOKI_E10_* knobs to the v10 arm (dropped today, so knobs never reach the run) | eval/loki10/harness.py (arm_env only), eval/loki10/test-harness.sh (one leg) | HIGH | bash eval/loki10/test-harness.sh; a leg asserts LOKI_E10_PLAN reaches the arm env and GH_TOKEN does not | ready@2026-09-28T00:06Z | Source: E-42 real run finding 1. |
|
|
340
|
+
| E-53 | Verify runs pytest with the repo's own interpreter (.venv/bin/python, venv/bin/python) when present, not bare python -m pytest (always PARTIAL on venv repos) | loki-ts/src/engine10/testmap.ts (pytest command only), loki-ts/tests/engine10/testmap.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/testmap.test.ts; fixture with .venv/bin/python selects it | ready@2026-09-28T00:06Z | Source: E-42 finding 2. Net line change must be 10 or fewer (budget). |
|
|
341
|
+
| E-54 | A killed or timed-out Wall author never copies its test file into the repo | loki-ts/src/engine10/stages/wall.ts (kill path only), loki-ts/tests/engine10/wall.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/wall.test.ts; aborted wall leaves git status clean | ready@2026-09-28T00:06Z | Source: E-42 finding 3. |
|
|
342
|
+
| E-55 | Seal marks NOT PROVEN when the diff edits or deletes a pre-existing test file (implement weakening tests) | loki-ts/src/engine10/stages/seal.ts (check only), loki-ts/tests/engine10/seal.test.ts | HIGH | cd loki-ts && bun test tests/engine10/seal.test.ts; fixture diff touching an existing test yields a NOT PROVEN entry naming the file | ready@2026-09-28T00:06Z | Source: E-42 finding 4. Opus reviewer (Seal). |
|
|
343
|
+
| E-56 | Verify matches Wall test paths repo-relative (absolute vs relative mismatch drops the Wall test from fast verify) | loki-ts/src/engine10/stages/verify.ts (path normalize only), loki-ts/tests/engine10/verify.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/verify.test.ts; absolute Wall path is selected | ready@2026-09-28T00:06Z | Source: E-42 finding 5. |
|
|
344
|
+
| E-57 | Line reclaim: engine10 back to 4,700 or fewer by deleting dead exports and duplicated helpers, no behavior change | loki-ts/src/engine10/ (deletions only, no new files) | LOW | cd loki-ts && bun test tests/engine10/ && bunx tsc --noEmit; budget.test count at or below 4700 | ready@2026-09-28T00:06Z | Source: train E10 hit 5,019 and needed a header trim; E-36, E-45 and E-52..E-56 need room. Merge after the gate-path slices to avoid conflicts. |
|
|
345
|
+
| EV-10 | Harness reaps arm descendants that escape the timeout process group: after the cap, KILL recorded PIDs under the run clone (.loki/**/*.pid) and processes whose cwd is inside that run-owned clone; guard in docs/v10/GUARDS.md | eval/loki10/harness.py (kill_orphans only), eval/loki10/test-harness.sh (one leg), docs/v10/GUARDS.md (one entry) | HIGH | bash eval/loki10/test-harness.sh; a fixture arm that setsid-spawns a sleeper leaves no live process after the cap | ready@2026-09-28T00:09Z | Source: incident 00:08Z, pulse ORPHAN_WORKTREE caught 4 legacy /tmp/loki-run-*.sh loops (ppid 1, 30 min, 15-min cap) plus 2 sleep 300 children from run dir loki-run.u6ikBxCT; stopped by PID (kill -TERM 58249 58251 58633 58634 57049 56916, ps -p afterwards empty). Never match by name. |
|
|
346
|
+
| E-58 | Issue-ref runs: supervisor creates runDir before the fetch child writes issue.json; makes E-47 green | loki-ts/src/engine10/supervisor.ts (one line before fetchIssueToFile), E-47 test files from 544348a7 | MEDIUM | cd loki-ts && bun test tests/engine10/issue_ref_e2e.test.ts (3 pass) | ready@2026-09-28T00:14Z | Source: E-47 finding (TL reproduced). |
|
|
347
|
+
| E-59 | Receipt model and summary tokens match the provider: cost.ts takes model from the result-cost file; events.ts fold sums cache read and creation tokens; makes E-50 green | loki-ts/src/engine10/cost.ts, loki-ts/src/engine10/events.ts, E-50 test files from 716618d4 | HIGH | cd loki-ts && bun test tests/engine10/model_report.test.ts tests/engine10/output.test.ts | ready@2026-09-28T00:14Z | Source: E-50 finding. Reconcile with E-44 (output.ts already folds cache tokens at render). Opus reviewer (cost numbers feed the gate). |
|
|
348
|
+
| EV-8 | v10 cost check on 5 tasks before the full arm (CEO 23:31Z): v10 arm, same model, after E-42 and E-45 merge | eval/loki10 results (gitignored) plus docs/v10/METRICS.md block | HIGH | eval/loki10/run.sh --arm v10 --tasks <5 ids> reports completed, time to PR and provider cost per task | ready@2026-09-27T23:48Z | Target cost per completed task at or below $0.2363 (raw claude -p full arm). Depends on E-42, E-45, E-38 (--tasks). |
|
|
349
|
+
| EV-9 | v10 full arm over the 29 tasks from the shipped entry, then EV-6 publishes the gate report | eval/loki10 results plus docs/v10/METRICS.md and the CHANGELOG block | HIGH | eval/loki10/run.sh --arm v10 --all yields 29 rows, none arm_unavailable; eval/loki10/publish_gate.sh writes the loki10-gate marker | ready@2026-09-27T23:48Z | Depends on EV-8 meeting cost, E-32, E-33, EV-6. |
|
|
350
|
+
| E-46 | Wire --resume end to end through the supervisor (refused today) | loki-ts/src/engine10/supervisor.ts (resume path only), loki-ts/tests/engine10/resume_cli.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/resume_cli.test.ts | ready@2026-09-27T23:48Z | Found by E-14 (resume refused). Depends on E-42. |
|
|
351
|
+
| E-47 | Issue-ref run end to end (owner/repo#N and URL) through the fetch child with a stub gh | loki-ts/tests/engine10/issue_ref_e2e.test.ts, loki-ts/tests/engine10/fixtures/issue-ref/ | MEDIUM | cd loki-ts && bun test tests/engine10/issue_ref_e2e.test.ts | approved@2026-09-28T00:14Z | Found by E-14 (issue refs wired but untested). Depends on E-42. Staffed in engine10-tests-e42, based on the E-42 branch. Built 544348a7, TL APPROVE: 3 tests red for one real bug (supervisor.ts fetchIssueToFile before runDir exists, ENOENT exit 2). Held; merges with E-58. |
|
|
352
|
+
| E-48 | Spawn deep verify detached from the supervisor after pr.opened, and wire adapters notify (Slack) after run.completed | loki-ts/src/engine10/supervisor.ts (post-PR hook only), loki-ts/tests/engine10/deep_wiring.test.ts | MEDIUM | cd loki-ts && bun test tests/engine10/deep_wiring.test.ts | ready@2026-09-27T23:48Z | E-23 and E-28 exist but nothing calls them. Depends on E-42. |
|
|
353
|
+
| E-49 | loki dashboard reachable through the real entry: serves a run folded from a fixture event log | loki-ts/tests/engine10/dashboard_entry.test.ts | LOW | cd loki-ts && bun test tests/engine10/dashboard_entry.test.ts | ready@2026-09-27T23:48Z | E-24 exists; this proves the cli route reaches it. Depends on E-42. |
|
|
354
|
+
| E-50 | Receipt model field and summary token count match the provider report on a real SDK session (fixture replay of a recorded result-cost file) | loki-ts/tests/engine10/model_report.test.ts, loki-ts/tests/engine10/fixtures/model-report/ | MEDIUM | cd loki-ts && bun test tests/engine10/model_report.test.ts | approved@2026-09-28T00:14Z | Found by E-14 (model "default", 1k tokens shown for 372k used). Depends on E-42, E-44. Staffed in engine10-tests-e42, based on the E-42 branch. Built 716618d4, TL APPROVE: 2 tests red for real bugs (cost.ts writes caller model not provider model; events.ts fold drops cache tokens, 1004 vs 373164). Held; merges with E-59. |
|
|
355
|
+
| E-51 | v10 run passes the pinned origin and the task through to a local-origin PR in the eval harness (regression test of the E-41 plus E-42 path) | loki-ts/tests/engine10/eval_pr_path.test.ts | HIGH | cd loki-ts && bun test tests/engine10/eval_pr_path.test.ts (bare local origin receives the branch; pr.opened url is local://) | merged@2026-09-28T00:14Z | Guards the path that lets v10 score in the gate. Depends on E-41, E-42. Staffed in engine10-tests-e42, based on the E-42 branch. Merged (cherry-pick of 018fbcd4 onto main): bun test tests/engine10/eval_pr_path.test.ts 1 pass 0 fail; TL APPROVE with mutation (env scrub removed -> canary leak caught). |
|
|
356
|
+
| E-31 | Default flip to v10 with LOKI_ENGINE=legacy override and the loki legacy alias (merge held until the gate marker reads met) | bin/loki, loki-ts/src/engine10/cli.ts (USAGE only), tests/test-engine10-default.sh, tests/test-engine10-dispatch.sh, tests/test-engine10-legacy-contract.sh, README.md and docs/v10/GUIDE.md (marked opt-in line only, after E-34) | HIGH | bash tests/test-engine10-default.sh && bash tests/test-engine10-legacy-contract.sh && bash tests/test-engine10-dispatch.sh (0 failed; legacy contract 0 skipped) | building@2026-09-27T23:36Z | Source: ENGINE.md 23:00Z cut. Held at approved until the METRICS.md loki10-gate marker reads met; parked if not met by 03:00Z. Depends on E-30, E-32, E-33, E-34, E-35, E-38, EV-6. Staffed in engine10-gate-push (wf_1d47133f-7c7). |
|
|
357
|
+
| E-32 | Packaging: engine runs from dist and the npm package (static registry, session child via cli route, REPO_ROOT paths) | loki-ts/src/engine10/registry.ts, loki-ts/src/cli.ts (engine10 arm only), loki-ts/src/engine10/machine.ts, loki-ts/src/engine10/session.ts, loki-ts/src/engine10/output.ts, loki-ts/src/engine10/fetch_issue.ts, loki-ts/src/engine10/stages/pr.ts, loki-ts/tests/engine10/registry.test.ts, tests/test-engine10-dist.sh | HIGH | bash tests/test-engine10-dist.sh && (cd loki-ts && bun test tests/engine10/registry.test.ts) | building@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. Later engine slices add one registry line at merge. Depends on E-14, E-TG. Staffed in engine10-gate-push (wf_1d47133f-7c7). Built f44797bf+0b859361, APPROVE; conflicts with E-42 in session.ts. Rebase dispatched. |
|
|
358
|
+
| E-33 | Gate report generator: METRICS.md and CHANGELOG blocks with every gate number, misses and the loki10-gate marker | eval/loki10/gate_report.py, eval/loki10/test-gate-report.sh, eval/loki10/fixtures/gate/ | HIGH | bash eval/loki10/test-gate-report.sh | merged@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. EV-6 runs it on real results and commits METRICS.md. Depends on EV-1. Building in a private clone (worktrees full). Built 06c457b8; review CONCERN (one-model check not covered by a test); fix in engine10-gate-push. Merged 23b20e6f (train E12): shard coverage 19/0, drift 6/0, engine10 349 pass 0 fail, tsc exit 0. Fix 4eb826b2 APPROVE; test-gate-report 34/0. |
|
|
359
|
+
| E-34 | v10 user docs: README quickstart and docs/v10/GUIDE.md (5-line summary, NOT PROVEN, receipts), opt-in until the flip | README.md, docs/v10/GUIDE.md, tests/test-engine10-docs.sh | LOW | bash tests/test-engine10-docs.sh | building@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. Depends on E-13, E-22. Building in a private clone (worktrees full). Stopped over budget (CEO 23:31Z); built 9716677f; re-sliced to a 15-minute review in engine10-gate-push. Re-review APPROVE, but README says the run does not execute a build yet, false since E-42 (9db2a4ed). Refresh dispatched. |
|
|
360
|
+
| E-35 | Legacy engine deprecation note for loki legacy help and CHANGELOG (no removal) | autonomy/lib/engine10-legacy-notice.txt, CHANGELOG.md, tests/test-engine10-legacy-notice.sh | LOW | bash tests/test-engine10-legacy-notice.sh | merged@2026-09-27T23:36Z | Source: ENGINE.md 23:00Z cut. Depends on none; lands before E-31. Building in a private clone (worktrees full). Review APPROVE (75e732c0); main 39ba4f67 (`bash tests/test-engine10-legacy-notice.sh` 8 passed, 1 skipped). |
|
|
361
|
+
| E-36 | First-run preflight: repo, git identity, provider CLI, opencode refusal, host guard, gh auth, UNSIGNED warning | loki-ts/src/engine10/preflight.ts, loki-ts/tests/engine10/preflight.test.ts, loki-ts/src/engine10/supervisor.ts (one call in main) | MEDIUM | cd loki-ts && bun test tests/engine10/preflight.test.ts | building@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. Depends on E-14. Staffed in engine10-gate-push (wf_1d47133f-7c7). Opus REJECT (reproduced): runSupervisor calls preflight without opts.env. Rework dispatched; merges with E-37. |
|
|
362
|
+
| E-37 | Non-claude provider paths (codex, cline, aider) through session.ts with cost not measured and NOT PROVEN entries | loki-ts/tests/engine10/providers.test.ts, loki-ts/tests/engine10/fixtures/providers/ | MEDIUM | cd loki-ts && bun test tests/engine10/providers.test.ts | approved@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. Test only; a red becomes its own slice. Depends on E-14, E-36. Staffed in engine10-gate-push (wf_1d47133f-7c7). Built 41995357, APPROVE; its opencode group un-skips now that E-42 exports main and fails without E-36. Held; merges with E-36. |
|
|
363
|
+
| E-38 | v10 arm gate run over the 29 tasks from dist; legacy arm pinned to LOKI_ENGINE=legacy | eval/loki10/harness.py (legacy arm env), eval/loki10/test-harness.sh (one leg) | HIGH | bash eval/loki10/test-harness.sh && eval/loki10/run.sh --arm v10 --all (29 rows, none arm_unavailable) | merged@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. The missing third arm for the gate. Depends on EV-1, E-32, E-36. Staffed in engine10-gate-push (wf_1d47133f-7c7). Merged 23b20e6f (train E12): shard coverage 19/0, drift 6/0, engine10 349 pass 0 fail, tsc exit 0. test-harness 79/0. |
|
|
364
|
+
| E-39 | Interrupt and resume end to end (SIGINT, no orphan, resume to seal on the same run) | loki-ts/tests/engine10/resume_e2e.test.ts, loki-ts/tests/engine10/fixtures/resume/ | MEDIUM | cd loki-ts && bun test tests/engine10/resume_e2e.test.ts | merged@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. Depends on E-14. Staffed in engine10-gate-push (wf_1d47133f-7c7). Merged 23b20e6f (train E12): shard coverage 19/0, drift 6/0, engine10 349 pass 0 fail, tsc exit 0. |
|
|
365
|
+
| E-40 | Live PR smoke on a sandbox GitHub repo from the dist layout | tests/test-engine10-live-pr.sh | HIGH | LOKI_E10_LIVE_REPO=<owner>/<sandbox> bash tests/test-engine10-live-pr.sh | merged@2026-09-28T00:27Z | Source: ENGINE.md 23:00Z cut. SKIP without the variable does not count as done. Depends on E-23, E-32, E-36. Staffed in engine10-gate-push (wf_1d47133f-7c7). Merged 23b20e6f (train E12): shard coverage 19/0, drift 6/0, engine10 349 pass 0 fail, tsc exit 0. Live leg SKIPs without LOKI_E10_LIVE_REPO. |
|
|
327
366
|
|
|
328
367
|
Every slice above: implement with red-then-green tests, run diff-scoped tests
|
|
329
368
|
plus `bash tests/moat/run.sh` in your own worktree, never touch `main`,
|