Skip to content

Consolidate reviewed CodeAF fixes — batch 2 - #1632

Draft
santoshkumarradha wants to merge 48 commits into
devfrom
Santosh/dev2
Draft

santoshkumarradha wants to merge 48 commits into
devfrom
Santosh/dev2

Conversation

@santoshkumarradha

@santoshkumarradha santoshkumarradha commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Second batch: Santosh-authored PRs only

This draft consolidates only PRs authored by GitHub account santoshkumarradha. The current change against dev combines #1629 with the reviewed, bounded engine and traffic changes listed below. #1627 remains a separate review batch.

Included change and issue mapping

Source PR Author Issue Change
#1629 — 3cbffa975a998165cb9c6e7e19dddd57eb0ed866 santoshkumarradha Fixes #1466 Preserve the displayed Home project when starting a task.
#1560 — selected source through 7f7f05a6199fef1855f1a805e76ffee189acc9d5, with reviewed correction santoshkumarradha #1550 Explicit isolated-work approval; retain unfinished work and persist the copy before execution.
#1596 — a955db54ed5e4dc26287aec18c1fd6bc3ef31be7 santoshkumarradha #1555 Correct project exclusions, current allowance quotes, and activity labels.
#1612 — selected production/docs and cleanup commits santoshkumarradha #1611; related #1623 Execute an approved one-time handoff and show an accurate Home receipt; bounded fixture cleanup.
#1604 — only 07e77ac44244c079969c3bd194f124614d5e6c1d and companion documentation santoshkumarradha #1566 only Reject blank extracted briefs. The broader PR and its other issues remain outside this incorporation.
#1622 — selected timer ownership, approval-receipt and test-fixture prerequisites santoshkumarradha #1608, #1618 Preserve a shared timer owner and report scheduling failure truthfully. Unrelated timing-tip changes are excluded.
#1500 — selected source af36b0b and 32c0d24 santoshkumarradha #1633 Show Traffic ages and jump to the exact message; reveal collapsed work before jumping.
#1503 — selected source 4caf911, 2d468cf and c0b1e6b santoshkumarradha #1633 Keep long Traffic ages compact and separate reminder cadence from its title.
#1607 — narrow revealTrafficEntry helper from 3ed6cea only santoshkumarradha #1633 Reuse the hidden-target navigation correction; no other #1607 behavior is selected here.

Source review and genuine workflow evidence are recorded below. Engine changes are incorporated through reviewed candidate c4aeecd3635dab7f7c10851010475499570fa59e; selected source attribution is preserved in commit history. Traffic changes are incorporated through reviewed candidate 658603d682787b66b818f589599b468dbb2eef24, retaining the narrow #1500/#1503 source mapping and #1633 correction. The traffic lane also reuses only five reviewed fixture corrections: owner-run cleanup, completed-store cleanup, settled-program cleanup, reading observation, and the #1622 decision-turn fixture. None changes production behavior or weakens assertions. The aggregate revision 635723f03ac3a2a2692cea2bbb7290f69492a320 passed make build; the aggregate change entry includes traffic navigation and reminder presentation. Exact-head GitHub CI passed (run). After temporary storage recovered, the independent combined gate completed all affected suites and found four failures: three command tests timed out while their load guard held execution, and one session test could not observe its worker after the first request. Build, static analysis, manual and law checks, standing tests, and all eight UI shards passed. The failures remain under diagnosis; the earlier storage failure is retained in the validation record. Final combined readiness and workflow acceptance remain pending; source-level passing results are not aggregate acceptance.

Scope correction

The initial contributor-owned #1498 bootstrap was reverted. Its documentation, script, test and change-entry changes are absent from the current diff. #1498 and #1536 were reopened and remain standalone. Contributor-owned #1544 and #1486 were never integrated. Other contributors' PRs are excluded from this batch.

Remaining owner-authored candidates

The #1500/#1503 pair is incorporated; direct source screenshots and video appear in the Traffic source acceptance section below. #1513 is excluded pending its unsigned CLA check; its corrected candidate passed source review, tests and live verification, but is not incorporated here. No other #1604 changes are included. #1501 is already merged into dev and is included through the base update.

The PR stays draft until the selected batch passes final combined checks and real-workflow acceptance. Source branches and review history are preserved.

Source workflow evidence: Home project targeting (#1629)

These recordings establish the behavior of the source revisions named below. They do not certify the current aggregate revision or imply that final combined acceptance is complete; incorporation is tracked separately in the included-change table.

#1629 / #1466 — Home tasks stay in the displayed project

Problem and change: submitting /task from Home in project B could select project A after the draft cleared and Home rebuilt its rows. The fix captures the displayed target before consuming the draft. Source revision: 3cbffa975a998165cb9c6e7e19dddd57eb0ed866 (source PR #1629, issue #1466).

Real workflow and result: project A retained an unpublished edit while a Home task in B created a useful shopping report on B's task branch. A later ordinary Home message opened a B conversation, read the committed report, and actually ran the pantry CLI and its tests: 19 passed. A's tracked files, refs, and unpublished edit were unchanged; B's main branch remained clean. All 48 recorded calls used OpenRouter deepseek/deepseek-v4.1-flash (12 for A setup, 36 for B's task/control), including auxiliaries.

Source validation: focused Home regressions, light gate, complete affected UI package, and exact-head required CI passed. Source CI.

Recording: genuine continuous B-session footage, 3× playback with idle pauses capped at 3 seconds. The still image is a separately captured checkpoint, not a video. The location footer is cropped; original recordings are retained.

Project B task creates and uses the shopping report while project A stays unchanged

1629-workflow.mp4

Checkpoint: shopping quantities and 19 passing pantry tests in project B

Limits: this used hosted chat, ask approvals, one model, and Model Pool disabled as the disclosed workaround for separately addressed #1610. It does not establish alternative-model, remote-host, or nondefault-picker acceptance. The footage shows B's workflow; A-preservation claims also rely on the separately retained before/after artifact and ref checks.

Engine source acceptance — c4aeecd

This evidence verifies selected engine changes at source candidate c4aeecd3635dab7f7c10851010475499570fa59e. It is not final combined-revision acceptance, which remains pending separately.

Scope: #1560 / #1550 (isolated scheduled work); #1596 / #1555 (current budget and project scope); selected #1612 changes (one-time approval and truthful receipt), with narrow timer-ownership/receipt prerequisites from #1622. Only blank-brief rejection for #1566 is selected from broad #1604; that broad PR remains open. The selected candidate also corrects early isolated-copy metadata persistence and truthful retained-copy outcomes.

Current allowance and “Only now” — actual approval through report result

The approval uses the current $7 daily allowance. Choosing “Only now, don't repeat” creates the shopping report and approved copy once, leaves the original source files unchanged, and saves no recurring schedule. Independent receipts verify the choice, actual output, file hashes, and absent recurring definition. All 24 completed calls and 24 usage rows use OpenRouter deepseek/deepseek-v4.1-flash, including auxiliary roles.

The following 25-second continuous clip is the original 02:35–03:00 segment at normal speed. The bottom location footer is cropped; the full original recording is retained. Earlier failed automated attempts are not presented as passing acceptance.

once-approval.mp4

Approval: current seven-dollar allowance and the Only now option

Result: approved once, not scheduled; shopping report created without changing original source files

Isolated one-time scheduled report — approval and result checkpoints

A real approval schedules exactly one report at its requested time in a separate Git worktree. The card offers “Run it then” and decline, with no unsafe ordinary “Only now” option. After one firing, the item retires. Durable metadata identifies the retained copy; SHOPPING.md contains Tea: buy 3 and remains an uncommitted file for review. Independent checks verify unchanged original source bytes, branch/head and history, no original report, and the retained copy's actual output. All 14 completed calls and 14 usage rows, including 8 execution calls, use OpenRouter deepseek/deepseek-v4.1-flash.

These are two separate 9.04-second actual-UI checkpoint clips, not a continuous recording of the whole workflow. The approval clip/still is cropped to its card region to remove a private location; the result clip/still has its bottom footer cropped. The collapsed result view alone does not prove file contents—the independent output and Git checks substantiate those claims.

isolated-approval.mp4

Approval checkpoint: isolated worktree retained for review, with Run it then and decline

isolated-result.mp4

Result checkpoint: completed isolated task shown in its conversation

Limit: one explicitly invoked product tick verified scheduled execution and retention; this does not prove unattended operating-system scheduling. Background checks remained off and shared scheduler configuration was unchanged. Original recordings and unsuccessful earlier attempts are preserved.

Source gates: full exact-candidate readiness gate and complete touched packages passed, including all session/UI shards. Focused checks, 18 offline blank-input cases, cleanup-fixture repetitions, and independent source/receipt reviews passed. Source acceptance and final aggregate gates remain distinct; no blanket closure of the broader #1604 scope is claimed.

Traffic source acceptance — 658603d

Source candidate 658603d682787b66b818f589599b468dbb2eef24 covers owner-authored #1500, #1503, and the narrow deliberate-jump disclosure helper attributed to #1607. It addresses #1633. This section records source acceptance only; final combined-revision acceptance remains pending separately.

Useful team workflow, Traffic navigation, and reminder confirmation

Useful outcome: a real manager and two teammates built and independently checked an invoice CLI. A user correction made while work continued—exclude invoices due exactly on the cutoff—was relayed and retained. The delivered CSV matched an independent rerun; 8 artifact tests passed. Actual CLI runs returned 1,599.95 for September 27 and 1,849.95 for September 28, with the invoice input unchanged. All 104 completed requests across actual model roles used OpenRouter deepseek/deepseek-v4.1-flash; the final audit found no active requests and an unchanged binary.

UI coverage: actual Traffic disclosure, reply-word cross-conversation jumps, member handles, and same-conversation jumps reopening a collapsed completed caption were exercised. Reopened saved conversations retained the correction and answer. The valid continuation checked 90-, 120-, and 140-column sizes: the sidebar hides at 90 and names/arrows/ages remain readable at 120. Real reminder cards were shown and declined; the application-generated fallback displayed in 30 minutes · 19:48. No reminder persisted.

Completed invoice-report handoff with actual Traffic messages; two private workspace paths are masked

Pending reminder confirmation with application-calculated time and a middle dot

reminder-proposal.mp4

Media scope: the video is a 22.96-second continuous 1× segment from the original session, showing the pending reminder confirmation that was subsequently declined. It is not the complete implementation workflow. Screenshots and video are cropped; the handoff screenshot masks two private paths. Original full recordings remain retained. Original ANSI colors are preserved, without a claim that missing terminal-default palette metadata was recovered.

Source validation: the exact final readiness gate, complete affected session/UI packages, and build passed. Four previously failing fixture cases passed ten repetitions; earlier failing attempts remain preserved, with no waived failures.

Limits: the first fixed-size recording's outer-resize attempt was invalid and excluded; the continuation verified resizing correctly. Long ages/clock skew and legacy team_post enclosing-work disclosure are deterministic regression coverage, while live calls used team_send and verified collapsed-caption reopening. One old creation-row handle opened the correct member with an older-than-history notice; exact reply and completed-handoff jumps passed. An initial input/key mix-up created an extra empty team before the operator returned to the observed chat; no team history or model output was injected. This narrow acceptance does not claim all original #1607 cleanup cases were exercised live.

Combined acceptance BLOCKED — 635723f

The final combined 635723f03ac3a2a2692cea2bbb7290f69492a320 real-user invoice workflow did not reach a useful delivered tool. This is not a passed acceptance run. The source runs above remain source-specific evidence.

Home correctly selected project B despite a newer conversation in unrelated project A. The invoice task created a durable separate task copy. The task then remained held by the machine-load guard; changing the isolated test profile guard from its default to 3 and finally off did not release it. After restarting only that project engine, persisted state and the task tool said running, but independent inspection still found only the seeded README and CSV, with no implementation. This overlaps the existing open #1571; no duplicate issue was created.

A real team checker independently derived the expected 1,599.95 total and correctly reported that it could not run an undelivered CLI. Project A files, refs, and unpublished edit remained unchanged. A genuine application-calculated reminder confirmation was shown and declined. Budget-change, scheduled isolated execution, complete Traffic navigation, and final artifact checks remain incomplete on this combined revision.

Actual checker reports the missing implementation and independently calculated expected totals; original terminal output, footer cropped

Original continuous terminal recordings and failed-run state are retained. This screenshot is failure evidence, not a successful workflow claim. All completed transport requests audited used OpenRouter deepseek/deepseek-v4.1-flash across every observed role; the audit found no active requests and an unchanged binary. A clean rerun after the blocker is resolved is required before this aggregate is ready.

The restart also exposed a distinct missing-reply defect, tracked in #1637. The retained transport audit includes two canceled auxiliary streams and one empty-at-ceiling title attempt; transport completion is not a claim that all model responses succeeded. Both runtime repairs need final combined live verification.

hy3560 and others added 23 commits September 25, 2026 21:27
Assisted-by: CodeAF (gemini-3.8-flash-high)
Co-Authored-By: CodeAF <267109073+agentfield-bot@users.noreply.github.com>
Assisted-by: CodeAF (gemini-3.8-flash-high)
Co-Authored-By: CodeAF <267109073+agentfield-bot@users.noreply.github.com>
…lation (#1550)

Defend contracts that standing runs with branch-only grants execute in an
isolated git worktree and leave the host branch untouched, that false prose
claims of branch isolation are caught and marked failed, and that plain ambient
runs without grants remain unaffected.

Assisted-by: CodeAF (gemini-3.8-flash-high)
Co-Authored-By: CodeAF <267109073+agentfield-bot@users.noreply.github.com>
readText resolved one empty or all-blank argument to an empty goal with no
error, so `codeaf do ""` ran a paid job with a goal the planner invented.
The blank check now sits where the goal text is resolved, for every road.

Fixes #1566

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
santoshkumarradha and others added 8 commits September 27, 2026 17:34
This reverts commit 576dc9a, reversing
changes made to 837b2b0.
The age sits at the right on the same ladder as a task row, and the words are what a narrow column cuts. A press on the row opens the chat the message belongs to, at that message.

(cherry picked from commit af36b0b)
(cherry picked from commit 32c0d24)
The yes button was spelling the landed time with an em dash. Product words use a middle dot.

(cherry picked from commit 4caf911)
A task row and a home session print a date after thirty days. A Traffic row is a few cells, so it keeps counting: 30d, then weeks, then years.

(cherry picked from commit 2d468cf)
(cherry picked from commit c0b1e6b)
Reuse the narrow revealTrafficEntry implementation from 3ed6cea (PR #1607), without importing its other changes. Preserve the already-visible team_send card as a control and regress the hidden completed team_post target. Refs #1633, #1500, #1503.
Pin exact six-week/year transitions, future clock skew and missing timestamps for issue #1633 acceptance.
Reuse only the reviewed task_run_settle_test.go teardown hunk from Santosh commit 2a2fc4c. The fixture releases its fake program after asserting Close state, then awaits the owner completion channel before temporary workspace cleanup. No application code or assertions changed.
@AbirAbbas

Copy link
Copy Markdown
Collaborator

Early review notes on batch 2, from reviewing the source PRs before they were folded in. #1632 is still a draft, so none of these block; they're here for your automation to act on before it goes ready.

#1629 → #1466: checked in the real binary (engine road, $0.005). On dev, /task from Home in project B opened in A and committed there. On 3cbffa975 it stays in B, and A's unsaved edit isn't carried along. The new test fails with the one fix line reverted. The five files here are byte-identical to 3cbffa975.

  • Should-fix: the new manual paragraph makes home.md's section about 4k characters. It would be easier to find under its own ## heading.

#1500/#1503: all five source commits are here patch for patch, plus efed92877 and abb990ba2. Once this lands, #1500 and #1503 can close as folded in.

  • Possible issue, from reading only: sideBandRows in internal/tui3/sidecol.go drops the age only when room < 0. When the from → to prefix alone is wider than the column, the age is still added and the row can overflow. The Traffic sheet's own add drops the age first. Worth one narrow-width check.

#1596: its claims hold. One unconfirmed point: it matches project paths by text only, not through symlinks or ~.

#1612: fine, provided it lands after #1560 and keeps #1560's guard that removes "Only now" from isolated tasks.

#1560 → #1550 only partly closed, re-checked on this PR's head 635723f03.

  • What holds: the existing task guard refuses host-aimed commands (git -C host commit, cd host && …, update-ref, push ., checkout/switch -c), so those don't reach the host branch.
  • What still gets through: a script file that names the host path still commits on the host branch, and the firing reports landed (HOST-REACHED=true outcome="landed"). A bash -c "cd HOST…" behaved the same on fix(standing): approve worktree isolation explicitly and retain unfinished work #1560's source head.
  • Orders that aren't isolated are still the literal session: standing execution falsely reports branch isolation while committing to main #1550 path, and the reply's prose still becomes the outcome text unchecked.
  • The tests are on branch review/1550-realpath-test (77369d89b, on top of this PR's head), for your automation to cherry-pick. Three real-path tests drive the real store, ticker, runner, bash tool and git, with only the model's replies scripted. They fail on dev and pass here. The fourth is a probe that logs the script-file case rather than asserting on it; flip it to an assertion once the gap is closed.

Other should-fixes on #1560:

  • Nothing bounds the kept worktrees and branches, and because a firing that changed nothing is still marked landed, the sweep never removes them.
  • A project opened from a subfolder runs at the worktree root.
  • An error between the cut and the reply loses the pointer to the kept copy.
  • The manual says the task "should open a pull request", but git push is refused inside a firing.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A task typed on Home can land in another project's repository

4 participants