Skip to content

lane/0.3.11 (superseded by lane/0.4.0) - #1953

Closed
aarontrowbridge wants to merge 42 commits into
mainfrom
lane/0.3.11
Closed

aarontrowbridge wants to merge 42 commits into
mainfrom
lane/0.3.11

Conversation

aarontrowbridge and others added 13 commits October 27, 2026 12:48
…s first reference (#1949)

A plan row whose step text's FIRST issue reference is (#N), a leading #N,
repo#N or owner/repo#N adopts that issue: no new issue, the provenance
marker is appended to its body once (idempotent, any hash), and it is linked
under the PRD and wired with blocked-by edges. Closed adopted issues are
still adopted (a closed blocker is a satisfied edge); a previously filed
duplicate is reported as superseded and left alone. In the real v2.1 Plan
table only row 10 (#1740 live skills) adopts.
…le panel or its ancestors (#1948)

The watcher's 'already there' guard read only the last-focused panel's
panel.active, so a visible tab with focus in another group/terminal/sidebar
still raised the question box. Suppress when any VISIBLE live panel shows
the session, or a cached ancestor of it (parentID learned from
session.created/updated; question.asked carries no parent info).
…or its descendants, by id alone (#1948)

The toast guard required pathKey(directory) === pathKey(currentDir()) and
matched only a direct child already in the (bootstrap: false) store. Extract
isViewingSessionOrAncestor (pure, cycle-safe parentID walk), learn parentID
from session.created/updated, key toasts by session id, and drop the
directory comparison. platform.notify keeps its own focus guard. Manifest
refreshed.
…1949, #1944)

TERM, poll kill -0 for <=10s (AMICODE_GATE_SMOKE_TERM_WAIT), then KILL.
A server that ignores TERM is a named smoke FAIL instead of hanging the gate
forever on 'wait'. A failed smoke no longer records a gate-approved sha.
AMICODE_GATE_SMOKE_ONLY=1 runs only the smoke (no approval) so the new
test_deploy_gate.py drives the real smoke against fake servers: a
TERM-ignoring fake fails named in ~11.5s, a well-behaved one passes in ~1.5s.
Also makes the script shellcheck-clean.
…1949)

A plain terminal opencode reads ~/.config/opencode/skills/<name>/SKILL.md
(engine discoverSkills: {skill,skills}/**/SKILL.md over config.directories()),
never the extension's skills.paths. Stage the machine-scoped set (same
surface/entitlement admission as the hub config, via the shared
resolveMachineSkillEntries) there at activation. Receipt-owned dirs only;
user-authored skill dirs are never overwritten or deleted, and owned dirs are
not re-offered as an external skill provider.
…repo (#1949)

A parent with amico-spec-slices children or spanning >1 repo gets no parent
integration branch: each slice is a unit of one, merged onto lane/<version>
when it needs a live test, else main. Integration-branch rule stays for
ordinary feature parents. Card + agents copy kept byte-identical; skill
revision 3 -> 4.
When amicode_session/amicode_workspace are absent in the engine binding, the
director falls back to its own git worktree add/remove, records each worktree
in the ledger, and removes it after merge.
fix(ops/hub): bounded gate shutdown; untrack __pycache__; spec slices adopts issues (#1949 §4–5)
fix: no question/permission notification for the session you're viewing (#1948)
feat(develop): skills reach every engine; campaign-PRD walk unit; honest degradation (#1949 §1–3)
@coderabbitai

coderabbitai Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8956119a-78bf-47a8-afb9-6f66cf1e8fe1
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

aarontrowbridge and others added 16 commits October 27, 2026 13:23
fix(extension): regenerate exemplars/index.json (stale rydberg-cz baseline_hash)
… explicit opt-in

The frontdoor listened on 0.0.0.0:4096/4097 with no auth, reachable from the
LAN as well as the tailnet. Remote access is via tailscale serve or ssh tunnels
(both target loopback). AMICODE_FRONTDOOR_BIND=0.0.0.0 restores the old bind.
fix(ops/hub): frontdoor binds loopback + ADR 0037 Armonia trust boundaries
…named statuses (#1984)

Per-model {model, status: ok|denied|unavailable|invalid|rate-limited|error,
latency_ms, reason, credential_fp, checked_at} via Provider.getLanguage;
credentials stay in the engine, reasons are redacted, credential_fp is a
truncated domain-separated sha256. Classifier beside parseAPICallError.
maxOutputTokens 1, 10s timeout, concurrency 4. Part of #1979.
…ote routes, wired in extension and hub runner (#1985)
feat(notturno): .notturno/gates — CI-equivalent cheap gates in the night sandbox
… + reasons, selected-dead retained, passthrough (#1986)
…esher probe wins, once-per-session gate, switch-target rules (#1989)
…valid turn failures, composer warning with one-click switch (#1989)
…by role, 12 cap, allowlist hard-filter incl. search, search reaches all shown; favorites persistence; model-picker config route (#1987)
aarontrowbridge and others added 7 commits October 28, 2026 14:27
…commended by role → recent, 12 cap, rest behind search; model.recommended/allowlist via GET /amicode/model-picker (#1987)
…ico/issue-1979-model-picker

# Conflicts:
#	packages/app-bundle/manifest.json
…issing —, context K/M, tools, latency), cheapest-that-works search sort (dead never above ok, ties by name, no-query order untouched), dead-pick recommended from S4 config (#1988)
…, tools, measured latency inline + in tooltip; cheapest-that-works search sort (dead never above ok); dead-pick switch prefers S4 recommended (#1988)
…parsed, default 16, cap 64); wrapped Bedrock message retries too; both-rejected takes the second classification; floor error never invalid (#1994)
…from the message, default 16, cap 64) and classifies the retry; dedicated token-floor matcher ahead of invalid so the floor error is never `invalid` (#1994)
…nto HEAD

# Conflicts:
#	packages/app-bundle/manifest.json
aarontrowbridge and others added 6 commits October 28, 2026 16:12
…at 16; 402 Payment Required and quota…billing → unavailable (billing reason); plain 429 stays rate-limited / no demote; 503 high demand stays error (#1996)
…r matcher (>= N / minimum N near a token param) and classifies billing (402, exceeded quota…billing) as unavailable ahead of rate-limit; classifyTurnError mirrors it — billing demotes, plain 429 does not (#1996)
…nd no truncate (wraps ≤2 lines), provider · meta on a separate faint second line, trailing tags shrink-0 on line 1 (#1999)
…le, no truncate) beside shrink-0 tags/badge/star; provider · meta · greyed reason on a faint truncating line 2; shared ModelPickerRow for V1 List and V2 RadioItem (auto height); V2 popover 340px clamped to viewport (#1999)
…ver height h-[min(420px,60vh)] so ~9 two-line rows show (#1999)
feat(models): reachability-aware model picker (#1979) → lane/0.3.11
@aarontrowbridge aarontrowbridge changed the title lane/0.3.11: question-notify fix, skills for every engine, develop walk unit, bounded gate, spec-slices adoption lane/0.3.11 (superseded by lane/0.4.0) Oct 29, 2026
@aarontrowbridge

Copy link
Copy Markdown
Member Author

Folded into lane/0.4.0 (Aaron, 2026-10-29). Everything here is on lane/0.4.0, which gets its own lane PR to main once the 0.4.0 backlog and What's-new (#2001) land.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant