Skip to content

fix(server): the managed Folder's refusals say what happens in plain words - #61

Merged
immakermatty merged 1 commit into
mainfrom
agent/DEV-6646-managed-folder-wording
Oct 13, 2026
Merged

immakermatty merged 1 commit into
mainfrom
agent/DEV-6646-managed-folder-wording

Conversation

@immakermatty

Copy link
Copy Markdown

Status: ready for review

Why

When a Lazurio Environment refuses a project or a chat outside its Lazurio Folder (#58), a person reads the refusal. Those texts used internal words: "retarget", "provides the Lazurio project at its Folder root", "T3 worktree", "must not become a repository itself". The wording pass in the comments of #58 suggested plain replacements. They were not applied before the merge, and the Admin asked for them. They should ride the stable 0.0.45-lazurio.8, which ships #58.

What changes

Where Before After
managedFolder.ts, chat outside the Folder This Environment starts agents in its Lazurio Folder; existing conversations remain available as history. Agents in this Environment work in its Lazurio Folder; your earlier chats stay here as history.
managedFolder.ts, another project root This Environment provides the Lazurio project at its Folder root. In this Environment, the Lazurio project is the Lazurio Folder itself.
managedFolder.ts, rename The managed project is named Lazurio. This project keeps the name Lazurio.
managedFolder.ts, another folder A managed Environment does not retarget projects. Use the Lazurio project. In this Environment a project cannot point to another folder. Use the Lazurio project.
managedFolder.ts, removal The Lazurio project is provided by this Environment and cannot be removed. The Lazurio project belongs to this Environment and cannot be removed.
managedFolder.ts, worktree Chats in this Environment start at the Lazurio Folder root, without a T3 worktree. Chats in this Environment start in the Lazurio Folder, without a separate worktree.
ProviderCommandReactor.ts This Environment starts agents in its Lazurio Folder. Start a new chat in the Lazurio project. Agents in this Environment work in its Lazurio Folder. Start a new chat in the Lazurio project.
VcsProvisioningService.ts The Lazurio Folder contains separate repositories and must not become a repository itself. The Lazurio Folder holds separate repositories, so it cannot become a repository itself.

OrchestrationEngine.test.ts pinned "retarget"; it now pins "cannot point to another folder".

What does not change

Behaviour, the refusals' conditions, the CLI (t3 lazurio capabilities, t3 lazurio model) and every other text. The managed Folder's behaviour fix and seam cleanup are the separate phase A task.

Verification

  • vp test run src/orchestration/Layers/OrchestrationEngine.test.ts src/orchestration/Layers/ProviderCommandReactor.test.ts src/vcs in apps/server: 316 passed (one failure before the test update, the pinned "retarget").
  • vp fmt --check on the four files: clean, and the pre-commit formatter ran.
  • Lint could not run locally: the filtered install lacks the lint plugin's dependency. CI runs it.

🤖 Generated with Claude Code

…words

The messages a person sees when a Lazurio Environment refuses a project
or chat outside its Lazurio Folder used internal words ("retarget",
"provides … at its Folder root", "T3 worktree", "must not become a
repository"). The wording pass on #58 suggested plain replacements, and
the Admin asked that they be applied. Behaviour does not change; the
engine test that pinned "retarget" now pins the new words.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@agentrozjedemeai agentrozjedemeai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@immakermatty Approved for exact head bc0d1b3. The eight user-facing replacements match the requested wording on #58 and the PR before/after table. Diff inspection confirms only those eight string literals and the matching engine assertion changed; refusal conditions are untouched. Isolated checkout git diff --check and a nine-substitution/string-boundary check passed. Lazurio Fork CI run 38363167256 is successful on this head (format, server/web typecheck, managed Folder tests, builds and archive smoke). The reported 316 focused tests were not rerun locally: this temporary clone has no dependencies and the 8 GB host is under memory pressure. No unresolved review threads.

@immakermatty
immakermatty merged commit b641176 into main Oct 13, 2026
6 checks passed
@immakermatty
immakermatty deleted the agent/DEV-6646-managed-folder-wording branch October 13, 2026 07:44
immakermatty added a commit that referenced this pull request Oct 17, 2026
…le and the wordmark on top

The approved design of the left column (2026-10-17, prototypes-lazurio
#56 and #61) puts one band at the top of every column: the toggle that
hides the sidebar and the app's name. Under it comes the Environment
picker with the gear and the Chat · Apps · Automate switch. In Chat the
band is T3's own top row: its toggle, the T3 Code wordmark and the
Lazurio label.

Until now the overlay put the shell's column head above that row and
moved the floating toggle down by the head's height. Now the exported
SidebarChromeHeader is a thin wrapper. It renders upstream's row, renamed
SidebarChromeTitlebar, and the column head right under it. The thread,
legacy and settings sidebars all render the header, so all three have the
head. AppSidebarLayout.tsx and its toggle are upstream's again, so they
leave the allowlist, and SidebarChrome.tsx moves to the shared seams.

The line between the rail and the sidebar comes back in the same decision
(amending root decision 0187 point 2). The shell's rail draws it in the
colour of the --lazurio-line role, which index.html already maps from
T3's sidebar border, so the fork adds nothing for it. The contract test
pins the new seam, and the runbook describes both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
immakermatty added a commit that referenced this pull request Oct 18, 2026
…le and the wordmark on top

The approved design of the left column (2026-10-17, prototypes-lazurio
#56 and #61) puts one band at the top of every column: the toggle that
hides the sidebar and the app's name. Under it comes the Environment
picker with the gear and the Chat · Apps · Automate switch. In Chat the
band is T3's own top row: its toggle, the T3 Code wordmark and the
Lazurio label.

Until now the overlay put the shell's column head above that row and
moved the floating toggle down by the head's height. Now the exported
SidebarChromeHeader is a thin wrapper. It renders upstream's row, renamed
SidebarChromeTitlebar, and the column head right under it. The thread,
legacy and settings sidebars all render the header, so all three have the
head. AppSidebarLayout.tsx and its toggle are upstream's again, so they
leave the allowlist, and SidebarChrome.tsx moves to the shared seams.

The line between the rail and the sidebar comes back in the same decision
(amending root decision 0187 point 2). The shell's rail draws it in the
colour of the --lazurio-line role, which index.html already maps from
T3's sidebar border, so the fork adds nothing for it. The contract test
pins the new seam, and the runbook describes both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

2 participants