docs(lastcode): establish Squirrels research base - #209
lastobelus wants to merge 180 commits into
Conversation
LastCode needs to remain a small personal fork that can run beside T3 Code, follow every upstream nightly without losing its fork commits, and produce optional local ad-hoc-signed builds without relying on hosted CI or an Apple Developer subscription. The fork also needs durable branding and operator documentation that are unlikely to conflict with upstream changes. - isolate LastCode's Electron profile, application IDs, URL schemes, state directory, single-instance lock, and update behavior from T3 Code - add the themed LastCode wordmark, temporary app mark, app icons, and favicons under a fork-owned asset root with dev, nightly, and prod variants - add an exact-commit local CI gate, pre-push quick gate, and guarded squash-merge command - checkpoint every upstream nightly as an immutable `lastcode/checkpoint/<upstream-tag>` tag while rebasing the complete fork stack in an isolated worktree - promote rebased checkpoints to `lastcode/main` only when no pull request is open - require checkpoint-bound full-CI provenance before an ad-hoc macOS build, then emit a manifest, SHA-256 checksums, and a numbered build tag - add an opt-in hourly/login launchd service for checkpoint automation - place LastCode-specific runbooks and conventions under `docs/lastcode/` - sanitize repository-local Git variables from nested Git and CI subprocesses so hooks and temporary-repository tests remain isolated LastCode and T3 Code can run simultaneously. Every upstream nightly can be recorded even when no LastCode build is ready, while selected checkpoints can later become reproducible local releases. Hosted release jobs are disabled for the fork; releases remain deliberate, local, and ad hoc. - exact-commit full local CI passed on `77b716527cd64f7253afe2c71d596d3f1319e769` - all workspace formatting and lint checks passed - all workspace typechecks passed - workspace tests passed, including 1,984 server tests (7 skipped) and 2,004 desktop tests - desktop production build and preload assertions passed - Rust resource-monitor formatting and 15 tests passed - SwiftLint, ktlint, and detekt passed for mobile native sources - release smoke passed from a frozen install - the normal pre-push quick gate passed under Git's hook environment - the LastCode desktop build was launched and manually verified with its sidebar wordmark, menu-bar name, isolated runtime, and app icon Implemented with GPT-5.6-Sol through the Codex harness in T3 Code.
The nightly checkpoint bootstrap stopped before its first rebase because `git worktree add` does not support the `--branch` long option. Use Git's documented `-b <new-branch>` syntax and cover the exact command arguments so the automation remains compatible with the installed Git CLI. Validation: - scripts package: 24 files, 230 tests passed - scripts typecheck passed - exact-commit 11-stage full local CI passed for `973bebf72b97200d81c3899eb14c8fafabee6837` - normal pre-push quick gate passed Implemented with GPT-5.6-Sol through the Codex harness in T3 Code.
The checkpoint smoke stage could resolve the caller worktree’s `vp` binary through pnpm’s inherited PATH, mixing module graphs inside the isolated sync worktree. After installing the recovery worktree, run its smoke tests and scripts typecheck through that worktree’s explicit local `node_modules/.bin/vp`. Tests cover the runner path selection. The focused scripts suite, scripts typecheck, exact-commit 11-stage local CI, and independent pre-push gate pass. Implemented by GPT-5.6-SOL through the Codex harness.
The launchd automation worktree was created without dependencies, so its first checkpoint invocation could not import workspace packages. A current main also attempted an unchanged promotion, unnecessarily triggering the full pre-push gate every hour. The installer now provisions the durable automation worktree before loading the agent, and each scheduled run reconciles dependencies after checking out `lastcode/main`. Promotion exits before the PR check or push when the remote branch already matches the newest checkpoint. The behavior and upgrade path are documented under `docs/lastcode/`. Focused tests, scripts typecheck, actual upgrade-in-place provisioning, exact-commit 11-stage local CI, and the independent pre-push gate pass. One cold automation-worktree run reached CI successfully but hit an upstream diff-highlighter test transient (650/651); that test passed in both subsequent exact-commit and pre-push runs. Implemented by GPT-5.6-SOL through the Codex harness.
The scheduled checkpoint job successfully rebased LastCode onto a new upstream nightly, then failed before smoke validation because launchd could not resolve the bare `vp` executable used to install the new sync worktree. Use the invoking automation worktree’s explicit `node_modules/.bin/vp` to bootstrap dependencies in the isolated sync worktree. After installation, continue using that sync worktree’s own Vite+ runner for smoke tests and typechecking. Document the two-stage runner model under `docs/lastcode/`. Validation includes focused checkpoint/service tests, scripts typechecking, a real install under launchd’s restricted PATH against the retained `1076` recovery worktree, all 57 recovery smoke tests, exact-commit 11-stage local CI, and the independent pre-push gate. Implemented by GPT-5.6-SOL through the Codex harness.
The nightly checkpoint service has durable tags and raw launchd logs, but no concise way to see recent checkpoint health, replay size, timing, promotion, or build state. This adds an installable `lastcode-checkpoints` command using the shell mocolors palette, records structured timing and failure history, enriches new annotated checkpoint tags, and documents installation and operation. The executable lives in `~/.lastcode/bin` and is exposed through `~/.local/bin`; it parses launchd status without dumping inherited environment values. Validation: - focused checkpoint/dashboard tests - scripts workspace typecheck - scoped lint and formatting - full pre-push quick gate (format/lint, workspace typechecks, and all workspace tests) - installed command exercised from outside the repository Generated with GPT-5.6 Codex in the T3 Code harness.
## Problem Git hooks export repository-local environment variables such as `GIT_DIR`. When those variables leak into nested temporary-repository tests, a command such as `git init --bare` can reconfigure the real shared repository instead of its fixture. That can damage both the primary checkout and every linked worktree. ## Changes - clear all variables reported by `git rev-parse --local-env-vars` at the pre-push hook boundary - require the shared repository config to report `core.bare=false` before local CI - snapshot the shared config byte-for-byte and verify the value, contents, and common Git directory again on every CI exit, including failures - cover hook cleanup, bare-repository rejection, and config-mutation detection with focused tests - document the three Git-safety layers and the fail-closed recovery policy under `docs/lastcode/` The guard reports the affected config path and stops. It deliberately does not auto-repair repository state, so evidence is preserved for inspection. ## Validation - pre-push quick CI: passed - focused LastCode CI/nightly tests: 16 passed - scripts workspace typecheck: passed - scoped lint: passed - hook test verified from both repository-root and scripts-package working directories Built by GPT-5.6 Codex in T3 Code.
Checkpoint tags already pass the dedicated checkpoint smoke gate before publication, but each tag push also triggered the generic pre-push quick gate. Catching up across multiple nightlies therefore reran the full workspace suite once per immutable tag, and unrelated nondeterministic tests repeatedly blocked publication after the checkpoint itself had passed. This change pushes a checkpoint tag with `--no-verify` only when that checkpoint actually ran and passed the dedicated smoke gate. Bootstrap checkpoints and explicit `--no-smoke` runs retain the generic pre-push hook. Ordinary branch pushes and `lastcode/main` promotion are unchanged and still run quick local CI. The patched runner successfully published checkpoints 1079, 1081, and 1082 after 65 focused smoke tests each, then ran the full quick gate once while promoting 1082 to `lastcode/main`. Validation: - `vp test run scripts/lastcode-checkpoint.test.ts` — 12 tests passed - scripts workspace typecheck passed - branch pre-push quick CI passed, including 2,490 server tests, 2,378 web tests, and 657 mobile tests Implemented with Codex in T3 Code using GPT-5.6.
The nightly runner successfully published checkpoint tags, but if the initial `lastcode/main` promotion failed, later runs could not identify the already-published checkpoint as the correct retry target. They therefore reported no missing nightlies while leaving main on an older checkpoint. This records the exact source commit in new checkpoint tag metadata and resumes from the newest checkpoint when that metadata matches the unchanged main source. Existing promoted-checkpoint behavior remains intact, and new commits on main still start a fresh rebase sequence. Validation: - 23 focused checkpoint/nightly tests passed - scripts workspace typecheck passed - pre-push quick CI passed, including all workspace tests Implemented with Codex in T3 Code using GPT-5.6.
LastCode needs an explicit contribution model for two kinds of work: private fork integrations and improvements that should be offered upstream while remaining available downstream. This documents the independent branch and PR bases for both streams, refreshes the fork contribution workflow, and adds repository skills for executing each workflow consistently. Validation: - both skills pass `skill-creator`'s `quick_validate.py` - all six changed files pass the repository formatter - `pnpm lastcode:ci:quick` Documented with Codex in T3 Code using GPT-5.6.
LastCode checkpoints are currently buildable only from the command line, so the desktop update control cannot carry an installed personal build forward. This adds an opt-in LastCode settings page and a local checkpoint update source. New checkpoint tags appear in the existing sidebar control with commit summaries; the first click runs full local CI and creates an ad-hoc-signed DMG plus updater ZIP in an isolated worktree, and the second click uses the existing Electron staging and restart path. The feature is disabled by default and never shares or cleans a human checkout or the checkpoint daemon worktree. Validation: `pnpm lastcode:ci` passed for `791ce60245b7aae0415b1c3cf7281a5b0d21813b`; the pre-push `pnpm lastcode:ci:quick` gate also passed. Implemented with Codex in T3 Code using GPT-5.6.
A fresh LastCode profile requires repeating a large amount of harmless UI and workflow setup from T3 Code. Copying the entire profile is unsafe because the two applications must retain independent identities, databases, connections, secrets, network settings, and update state. This adds a Settings → LastCode import preview and an explicit Import and restart action. It validates the three supported JSON documents, copies client preferences and keybindings, allowlists safe server/provider fields, preserves LastCode-only and secret-bearing values, backs up existing files with private permissions, and atomically replaces them with rollback on failure. The new LastCode runbook documents the imported categories and exclusions. Validation: - read-only preview against the local T3 Code and LastCode profiles: all three categories ready - focused importer tests: 4 passed - focused contracts, desktop, and web typechecks - focused lint - full local CI for bc9f0b0 (all 11 stages) - pre-push quick local CI Generated with Codex (GPT-5.6 Sol) through the T3 Code Codex harness.
The LastCode project entry still selected the upstream T3 development icon, so the project list displayed a blue T3 badge. Point `t3.json` at the existing LastCode development touch icon so project-icon resolution uses the fork branding. Implemented by GPT-5.6-sol through the Codex harness.
Local LastCode nightlies were difficult to build, install, recover, and trust as a continuous workflow: checkpoint conflicts could stall silently, local builds inherited unsafe ambient state, ad-hoc signing behavior drifted, and a delayed desktop keychain response could strand startup on an HTTP 500 screen. This makes the local-nightly lifecycle coherent end to end. It adds the userland lastcode-build and lastcode-install commands, records and resumes checkpoint conflict resolutions, makes the checkpoint dashboard actionable, keeps builds explicitly ad-hoc signed, retains local artifacts for installation, and retries desktop authentication for up to one hour after delayed keychain access. Documentation and focused coverage accompany each boundary. Validation: pre-push quick local CI passed on the exact head, including workspace formatting, lint, typechecks, and tests. Full local CI will run as the guarded merge gate. Built with GPT-5.6 in the Codex harness.
Merged LastCode work currently cannot become an in-app update until another upstream nightly arrives. Publish ordered `lastcode/revision/...` tags when `lastcode/main` advances between upstream checkpoints, teach the local updater and build tools to discover and package those revisions, and request an immediate daemon run after guarded merges. The hourly daemon remains the fallback, and the normal upstream checkpoint sequence still takes precedence. Documentation covers tag ordering, recovery, settings, and local builds. Validation: focused LastCode/desktop tests (186 passing), scripts typecheck, targeted lint, checkpoint dry-run, and the full quick local-CI push gate. Authored with GPT-5.6 SOL via the Codex harness.
The checkpoint daemon opened its SSH push connection before a long local pre-push gate. GitHub closed the idle connection after CI passed, and the hook validated the automation checkout rather than the revision commit being promoted. Use the existing candidate smoke validation before automation-controlled tag and branch updates, then push promotions and exact upstream mirrors with `--no-verify` and their existing exact force-with-lease guards. This keeps ordinary human branch pushes on the full pre-push gate while making daemon ref updates validate the correct commit without an idle transport. Validated with the complete local quick gate, 25 focused checkpoint tests, targeted lint, scripts typecheck, formatting, and diff checks. Model: GPT-5.6-sol (high reasoning) Harness: Codex in T3 Code
The cross-architecture Windows payload test treats any child command carrying ELECTRON_RUN_AS_NODE=1 as the packaged primary probe. LastCode local updates run from Electron and inherit that variable, so the ordinary Node self-containment check is misclassified and full local CI fails before a build can be produced. Identify the primary probe by both its packaged executable path and Electron runtime flag. This keeps the assertion scoped to its intended behavior and allows local update builds launched from LastCode. Upstream: pingdotgg#7253 Validation: - focused scripts/build-desktop-artifact.test.ts: 47 passed - exact-head full local CI passed for dfdb1d4 against eab34f9 - pre-push quick local CI passed Implemented with GPT-5.6-Sol through the Codex harness in T3 Code.
Successive ad-hoc-signed LastCode nightlies have different designated requirements, so Squirrel can build and download them but cannot reliably replace the running app. The failed handoff could leave LastCode alive without a visible window. Route only the LastCode-local source through the retained DMG and the existing managed installer primitive. The detached helper verifies the manifest SHA-256 and bundle version, acquires the shared install lock, stages the replacement, and reports readiness before backend shutdown. An explicit COMMIT/CANCEL handoff owns quit, rollback-safe swap, and relaunch; hosted signed updates continue using electron-updater. Validation: focused updater/installer tests, targeted lint, desktop and workspace typechecks, two complete Quick CI passes on the exact head, and a real retained-DMG preflight/cancel with no residual mount, staging path, backup, or lock. Fixes #20 Implemented by GPT-5.6-sol through the Codex harness in T3 Code.
Issue #21 needs a configurable shortcut for switching between the inbox and legacy sidebars without changing the existing default keymap. This adds the unbound `sidebar.mode.toggle` command, exposes it in Keybindings settings, and routes it through the existing persisted legacy-sidebar preference. Client-settings functional updates now persist in invocation order so rapid toggles cannot write stale desktop state out of order. Focused contract, server, resolver, settings-label, and persistence tests cover the behavior, and the user keybinding documentation describes the command. Closes #21 Implemented and validated with GPT-5.6-sol through the Codex harness in T3 Code.
Drafts remain in the composer store after navigation, but the legacy sidebar did not render them. That left users with no way to return to an unsent draft while the legacy sidebar was enabled. This ports [pingdotgg#7120](pingdotgg#7120) at pinned head `799ba957f51cd0b48ad8e5020090814318d0388f`. It exports the existing `SidebarDraftBlock` and reuses it above the legacy project list through a small wrapper that supplies project lookup, route state, and navigation. Upstream authorship and the `cherry-pick -x` provenance trailer are preserved. - LastCode Quick CI passed on Node 24.13.1 at the current head. - Focused web typecheck and lint passed. - 3 nearby test files passed: 118 tests. - Manual isolated-app verification passed for draft appearance, restoration, discard, zero-draft layout, and default-sidebar parity. - Responsive verification passed at 465 × 800: selecting the persisted draft restored its exact text and closed the sidebar. - Matched desktop and responsive before/after evidence is attached in the PR conversation. Model and harness: GPT-5.6-Sol via the Codex harness in LastCode/T3 Code. Co-authored-by: VIvidh Mahajan <vividhmahajan@gmail.com>
Local nightly builds can run for several minutes without a percentage, leaving the existing circular download indicator looking inert. The checkpoint dashboard also only matched build tags to the bare upstream checkpoint, so built LastCode revisions such as `1110.1` appeared to have no build. This makes the integrated download ring spin indeterminately while progress is unknown (with reduced-motion support), while retaining determinate progress for hosted downloads. It also renders actually built LastCode revisions as indented pacific-colored rows under their parent checkpoint, with commit, main, and build-number evidence. Validation: - focused tests: 18 passed - targeted lint: passed - web and scripts typecheck: passed - LastCode quick CI: passed Generated with Codex (gpt-5.6-sol) in T3 Code.
The direct LastCode installer could hang before its 30-second shutdown deadline began because it waited synchronously for the app's quit AppleEvent response. Send the quit request without waiting for an application response, then enforce the existing bounded running-state poll. Add focused coverage for both a clean quit and an application that never exits. Validation: focused installer tests, targeted lint/format/typecheck, and LastCode Quick CI. Generated with Codex (gpt-5.6-sol) in T3 Code.
The first complete upstream-import tracer exposed workflow requirements that do not belong in `upstream-fix`, which handles the opposite direction. Without a dedicated lane, future imports risk following moving PR heads, confusing path overlap with conflicts, or treating upstream CI as downstream acceptance. This adds an `import-upstream-pr` skill for evaluating open-unmerged and closed-unmerged T3 Code pull requests, preserving pinned provenance, validating on the current LastCode base, publishing evidence, and handing delivery to the existing guarded LastCode workflow. A focused reference captures intake receipts, duplicate detection, UI evidence, and squash patch-equivalence checks. ## Validation - Skill Creator `quick_validate.py` passed. - `git diff --check` passed. - Fresh-context read-only forward test against pingdotgg#7120 correctly detected the already-merged identical patch and stopped before creating another port. - LastCode Quick CI passed on Node 24.13.1. Model and harness: GPT-5.6-Sol via the Codex harness in LastCode/T3 Code.
Part of #13 Project Actions could run in terminals, but an agent could not explicitly launch one and receive a trustworthy follow-up when it finished. Long-running Actions therefore required polling or manual user intervention. This adds a bounded LastCode-only resume seam: - locally opted-in Actions are exposed to Codex through scoped MCP tools - each invocation runs in a dedicated thread terminal and persists one-shot lifecycle state - success, failure, and user cancellation deliver one system-authored follow-up when the originating thread is eligible - interrupted processes require explicit review and resume after restart - web and desktop show a yellow Waiting state with terminal and cancellation controls - desktop quit flows warn with the number of running Actions Mobile UI is intentionally deferred to the next slice. Validation: - `pnpm lastcode:ci:quick` passed locally on Node 24.13.1 - integrated web QA covered prompt-driven discovery/launch, successful completion, cancellation, exactly-one follow-up, and ordinary non-resuming Action behavior - the ELI5 architecture document passes its structural verifier and desktop/narrow visual checks Implemented by GPT-5.6-Sol through the Codex harness in T3 Code.
Part of #13. The Action-resume lifecycle shipped in the first slice was visible and controllable only from web/desktop. A user checking the originating thread from iPhone could not see that LastCode was waiting, cancel the running Action, or resolve an interrupted follow-up. This reuses the existing `actionResume` shell state and existing close/resume/discard commands on mobile: - running Actions show a yellow **Waiting** status and stay out of the settled tail - the thread view shows a compact waiting/recovery card - users can cancel a running Action or choose **Resume agent** / **Discard** after restart - legacy and v2 mobile thread lists receive the same status and cancellation affordance This is intentionally a thin, temporary client slice for a single-user macOS workflow pending the V2 orchestrator. It adds no scheduler, server persistence model, compatibility layer, timeout, or Android-specific behavior. Verified on an iPhone 17 Pro simulator against a disposable local LastCode environment. The recovery card rendered with both choices, and tapping **Discard** reached the server and persisted the disposed lifecycle state.  - `pnpm lastcode:ci:quick` - focused tests: 224 passed - mobile suite: 732 passed - native iOS dev-client build: succeeded - targeted contracts, client-runtime, and mobile typechecks: passed Built with GPT-5.6 Codex in T3 Code.
The managed installer inherited `ELECTRON_RUN_AS_NODE=1` into its `open` command and treated LaunchServices exit code 0 as proof that LastCode relaunched. A successful bundle swap could therefore leave the app stopped with no visible error. This scrubs helper-only Node mode from the launch environment, forces an addressed new app launch, retries within a bounded deadline, requires the process to remain running before deleting the backup, and records the full helper transcript. Focused regression tests cover retry, stability, timeout, and rollback behavior. Implemented by GPT-5.6-Sol through the Codex harness.
Large archives are difficult to navigate because every archived thread is shown at once. LastCode should adopt the project-scoped Archive filter now without waiting for the upstream review schedule. - Upstream PR: pingdotgg#7282 - Title: `feat(web): filter archived threads by project` - Author: Michael Johnston (`lastobelus`) - Observed August 17, 2026 (America/Vancouver): open and unmerged, with the upstream vouch gate blocking merge - Pinned upstream base: `949feb61e4bfd96669ba0e8cf3dca7c6d7f885b3` - Pinned upstream head: `535a7b11358d8f0b4b302e4261b769dbafffc643` - Linked request: pingdotgg#6780 - Review context: all 13 upstream review threads are resolved; upstream checks are supporting evidence only The complete eight-commit upstream graph was derived from the pinned Git objects and cherry-picked oldest-first with `-x` onto exact LastCode base `6ebffe1965126f81e1ee65ba5bee9726d6cb4b10`. The upstream stack applied without textual conflicts or LastCode-specific adaptations. Range-diff shows only the provenance trailers, and both source and the initial port aggregate to stable patch ID `d9e9829895c1cbb1ee796950022e39f59095c8f3`. LastCode exact-head review then found that saved disconnected environments could leave the archive aggregate loading forever. A downstream follow-up limits archive snapshot requests to connected environments and adds a regression test for the offline case. - dependency installation completed with `vp i` - 7/7 focused archive-filtering tests passed, including disconnected-environment coverage - targeted formatter and linter checks passed for all eight changed files - the web package typecheck passed under Node `24.13.1` - committed-range `git diff --check` passed - the guarded push's `lastcode:ci:quick` hook passed formatting, workspace typechecks, and all workspace test groups - a LastCode web client at 1280×800 used disposable state with three projects and five archived threads: - `All` showed Alpha, Beta, and the archive-only Legacy project - selecting `Beta Project` updated the route and hid Alpha and Legacy rows - selecting `All` cleared the query and restored all groups The shared preview could exercise the interaction but could not capture a screenshot while its tab was hidden. The published images below are from the patch-identical upstream candidate; the LastCode client assertions above were verified independently. Default Archive scope: <img width="1280" height="800" alt="Default — Archive / All" src="https://github.com/user-attachments/assets/26167028-e14c-43fa-958d-37c96392bec7" /> Filtered Archive scope: <img width="1280" height="800" alt="Filtered — Archive / Beta Project" src="https://github.com/user-attachments/assets/c4547658-26c1-43ea-84e7-3ddfd48e5782" /> Implemented by GPT-5.6-sol through the Codex harness.
Local update validation failed because provider tests assumed temporary paths were already canonical and counted host package-manager discovery as a provider probe. Canonicalize temporary fixture roots while retaining the package symlinks under test. Track the two configured provider probes separately from maintenance discovery, preserving the exact probe order and rebuild assertions. Production behavior is unchanged. Validation: all 80 tests across the three affected files pass; Quick CI passed for 6404c96. Implemented with GPT-5 through the Codex harness.
Checkpoint recovery currently replays remembered conflict resolutions, losing additional committed repairs made after the rebase. This leaves repaired worktrees blocking publication. Add explicit recovery selection bound to the exact repaired head, upstream nightly, and represented main commit. The service validates the retained tree and atomically publishes its immutable tag and promotes main with a source-bound lease. Selected recovery handles one nightly, preserves repairs on failure, and supports interrupted cleanup. A shared operation lock protects selection and checkpoint runs. Validation: 60 focused tests pass, including real bare-Git tests for atomic publication and rejection of an advanced main without creating the tag. Scripts typecheck and Quick CI pass for 40e27e4. No application installation or restart. Implemented with GPT-5 through the Codex harness.
The unused-file CI check reports seven retained tooling files because their consumers load them by filename or use paired JavaScript declarations. Declare the exact smoke helpers, documentation fixtures, packaged supervisor, and declaration files as entry points. Keep the unused-file gate enabled without broad ignore patterns. Validation: the previously failing unused-file/dependency check passes locally, formatting passes, and Quick CI passed for ddf8658. Implemented with GPT-5 in the Codex harness.
Local release validation failed on macOS because filesystem-resolved paths differed from their recorded spelling. Recognize both configured and canonical scanner exclusion roots so symlinks cannot expose managed sandboxes as importable projects. Exercise an explicitly aliased configuration directory in the regression test, and canonicalize the Codex installer fixture root before comparing its expected npm prefix. Validation: 92 focused tests passed, targeted formatting and lint passed, and Quick CI passed for 01d49568209f30f3906be047d740b54d8f6bc063. Implemented with GPT-5 in the Codex harness.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c7cf4e857
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| **1. The checklist you see is real—but it is not a complete thread task manager.** | ||
|
|
||
| - Providers emit checklist updates, which LastCode saves in thread activity history. | ||
| - LastCode can find an older checklist, but the composer only displays tasks belonging to the current, unfinished turn. An unfinished list can therefore disappear when the turn ends or another turn starts. See [the display condition](../../../../apps/web/src/components/ChatView.tsx:5009) and [older-list selection](../../../../apps/web/src/session-logic.ts:656). |
There was a problem hiding this comment.
Use valid anchors for source references
GitHub treats ChatView.tsx:5009 and session-logic.ts:656 as literal filenames, so both links resolve to nonexistent paths rather than the cited lines; the same malformed syntax is repeated on line 45 for the server and contract evidence. Replace the :<line> suffixes with Markdown-compatible #L<line> anchors, preferably using commit-pinned links so this durable research remains verifiable as source files change.
AGENTS.md reference: AGENTS.md:L149-L149
Useful? React with 👍 / 👎.
145fee3 to
94bf8cd
Compare
3f15022 to
0408d19
Compare
Purpose
Establish the Squirrels project as a durable home for research about preserving thread goals and unfinished work across distractions and compaction.
Contents
docs/lastcode/squirrels/.Stacking rule
This is the open base documentation PR for Squirrels. Subsequent implementation PRs should branch from the
lastcode/squirrels-basebranch and stack on this PR's head, with this PR as their base. Research and documentation changes belong on this base PR. Keep this PR open until an explicit integration decision.Project: Squirrels
Branch:
lastcode/squirrels-baseNo product code or application state was changed.
Generated by GPT-5.6 Luna / Codex.