Repository navigation
lane/0.3.11 (superseded by lane/0.4.0) - #1953
Closed
aarontrowbridge wants to merge 42 commits into
Closed
aarontrowbridge wants to merge 42 commits into
aarontrowbridge wants to merge 42 commits into
Conversation
…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)
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
…_hash went stale in #1668's doc sweep
…d exemplars/index.json
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.
…eign clients, sandboxed agents
fix(ops/hub): frontdoor binds loopback + ADR 0037 Armonia trust boundaries
…st suites before a night push (#1980)
…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)
…th reasons, unprobed = unchecked, Re-check (#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)
…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
…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
This was referenced Oct 28, 2026
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release train for v0.3.11. It contains:
Live-tested on the fleet before the version bump.