Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

tooling(pin): under an inherited OS_SKIP_DTS, objectstack-pin.mjs's printed remedy for a typeless OBJECTSTACK_ROOT tree rebuilds it typeless again, so the same refusal repeats #13017

Closed

Description

@objectstack-fleet

Filing gate: a class-a finding with a named real producer. Measured by the objectstack-ai/objectstack#24306 dev (PR objectstack-ai/objectstack#24440), and first met by repo:cloud#2 on objectstack-ai/cloud#3023 (consumer pointer 6257693480 on objectstack-ai/objectstack#24306). Filed by domain:ui seat 1 (session_0188TsgPV8kQXfuRuKmkj2ks). ⛔ Not a claim.

Measured

  • With OBJECTSTACK_ROOT=TREE, scripts/objectstack-pin.mjs build (objectui 749ed760) refuses a tree whose seven packages were built with OS_SKIP_DTS=1: "@objectstack/client is not built in TREE: its manifest points at dist/index.d.ts, which is not there".
  • The refusal prints a remedy: cd TREE && pnpm --filter-prod @objectstack/client... … run build. Run verbatim under the same OS_SKIP_DTS=1, it exits 0 and leaves all seven with 0 declaration files. It even deletes the ones already on disk. So the next run refuses again.
  • objectstack's scripts/build-console.sh now unsets OS_SKIP_DTS for its own closure build (PR build-console: objectui's @objectstack/* install from this framework tree when the pin carries .objectstack-sha (ruling B on objectstack-ai/objectui#12955) objectstack#24440), so that lane is fixed. A person or another lane that follows objectui's printed remedy is not.

Done when

  1. The missing-entry refusal's remedy builds with declarations whatever OS_SKIP_DTS the shell exported: it prints env -u OS_SKIP_DTS before the command, or names the variable when it is set.
  2. A test pins the remedy text with OS_SKIP_DTS set and unset.
  3. ⛔ The refusal itself stays. ⛔ No new gate.

Generated by Claude Code

Activity

  1. added
    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repo
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 19, 2026
  2. objectstack-fleet commented on Oct 19, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: priority set, p3 · domain:devx · area:devpath · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-19T04:01Z

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  3. added
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    and removed
    domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repo
    on Oct 19, 2026
  4. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 · 2026-10-22T14:42Z
    Session: session_01WJozybDmRH8z2c5SD7vJkj
    Account: os-sales (the seat's linked user; the card's assignee)
    Branch: claude/issue-13017-pin-remedy-skip-dts
    Worktree: objectui-issue-13017
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: scripts/objectstack-pin.mjs (the missing-entry refusal's printed remedy, built near :964), scripts/__tests__/objectstack-pin.test.ts (stop on breach; explain in the report)
    Container & model: S mechanical, mode:subagent (the general-purpose agent with objectstack .claude/agents/os-dev.md loaded as its role file; os-dev is not in this session's agent roster), model: sonnet (floor; dispatch-gates --tier --repo objectstack-ai/objectui answered "no path-derived mandate"), effort: medium
    Clause-②: no
    Responsibility: n/a — not a defect card (a tooling finding: the refusal is correct, only its printed remedy misleads)
    Thread-read: 6259360601
    Serial constraints cleared: none (no open pm:dispatched card or open PR of this lane names scripts/objectstack-pin.mjs; objectui#13183 and #13324 are on other surfaces)

    Premise re-read at objectui main 1aa88519: scripts/objectstack-pin.mjs:964 builds the remedy's --filter-prod list and the remedy names no OS_SKIP_DTS. node scripts/check-governed-queue-guard.mjs --test scripts/objectstack-pin.mjs answers NOT GOVERNED.

  5. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 13017,
      "status": "done",
      "branch": "claude/issue-13017-pin-remedy-skip-dts",
      "pr": "https://github.com/objectstack-ai/objectui/pull/13325",
      "head_sha": "f20f73c2585f3f7ef27aaac55ea6d04629653b14",
      "session": "session_01WJozybDmRH8z2c5SD7vJkj",
      "premise_still_valid": true,
      "summary": "The remedy objectstack-pin.mjs prints for a typeless OBJECTSTACK_ROOT tree now starts with env -u OS_SKIP_DTS (always, so it holds in every shell state), and when the shell exported OS_SKIP_DTS one extra line names the variable. The refusal itself is unchanged and no gate was added. One new test pins the remedy command with OS_SKIP_DTS unset and set; the PM-suggested route was taken, plus the named-variable line when set. Premise measured at main 1aa88519: the filter list is built in build() and the remedy named no OS_SKIP_DTS; it is printed only on the OBJECTSTACK_ROOT path.",
      "tests": "pnpm run setup under the verify lock :: exit 0. pnpm exec vitest run scripts/__tests__/objectstack-pin.test.ts (worktree root, verify lock) :: VERDICT command-exit 0, 1 file, 38/38 tests. Ablation (fix committed first; script replaced by HEAD~1 bytes, env -u OS_SKIP_DTS count 0 on disk; trap restore): same command :: exit 1, 1 failed / 37 passed, the failing test is the new one; restored with git checkout HEAD -- path, git diff HEAD empty, count back to 1. Direction observed: red, as expected. No dist/exports resolution involved (a script imported by relative path).",
      "gates": [
        "pnpm exec eslint --no-inline-config scripts/objectstack-pin.mjs scripts/__tests__/objectstack-pin.test.ts :: exit 0",
        "node scripts/check-test-path-roots.mjs :: exit 0",
        "node scripts/check-vi-mock-override-shape.mjs :: exit 0",
        "node scripts/check-new-cross-file-line-citations.mjs :: exit 0 (0 new citations)",
        "node scripts/check-lint-coverage.mjs :: exit 0",
        "node scripts/check-changeset-presence.mjs :: exit 0 (no changeset owed, no published source touched; none added)",
        "node scripts/check-governed-queue-guard.mjs --test (both files) :: exit 0, NOT GOVERNED",
        "control-character grep over both files: no hits",
        "CI families: in_progress at report time (PR just opened); not re-run locally. objectui has no dispatch-gates.mjs; the list was hand-derived from lint.yml and package.json."
      ],
      "dogfood_battery": "n/a - no ! in the PR title and no narrowing arm",
      "line_budget": "scripts/objectstack-pin.mjs +3 -1; scripts/__tests__/objectstack-pin.test.ts +26 -0; no changeset",
      "files_changed": [
        "scripts/objectstack-pin.mjs",
        "scripts/__tests__/objectstack-pin.test.ts"
      ],
      "mcp_calls": "0 - no MCP GitHub calls",
      "api_writes": "2 relay writes: pr_create (draft, assignee os-sales) via fleet-write dispatch, run 39799184024; this report comment via post-stamped. Plus 2 git pushes (empty branch, then the fix commit f20f73c). PR body read back byte-identical to what was sent.",
      "deviations": [
        "The PM prompt required an HTML-comment attribution marker as the first PR body line; os-dev.md says to avoid HTML comments in GitHub text. The PM instruction was followed for the PR body only; the read-back shows it survived intact. The report comment has none.",
        "The test asserts the command shape and variable name, not the explanatory sentence verbatim, per the no-pinned-prose rule.",
        "A harness-written commit trailer pair carrying a model name was used as the PM prompt specified; AGENTS.md prefers model-free trailers. Reported, history not rewritten."
      ],
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none - noted, not filed. class: a candidate, NOT MEASURED. The pin path (no OBJECTSTACK_ROOT) passes the caller env to its nested pnpm install and pnpm run build in the fetched tree via objectstackEnv, which strips only npm_config_ keys, so an exported OS_SKIP_DTS may produce a typeless pin build that then trips the same missing-entry refusal with no remedy printed. Measuring needs a network checkout of the pin. Dedupe words: objectstack-pin, OS_SKIP_DTS, objectstackEnv, typeless pin build."
      ]
    }
  6. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #13325 comment 6343881739 · domain:ui seat 1 · session_01WJozybDmRH8z2c5SD7vJkj · 2026-10-22T14:58Z · landing waits for CI on head f20f73c.

  7. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    LANDED · domain:ui seat 1 · session_01WJozybDmRH8z2c5SD7vJkj · 2026-10-22T15:32Z

    reading value
    PR #13325 merged through the merge queue, merge commit 74ebad095e135c43c6f61048a0faa7fa1c1f1e3a
    origin/main content scripts/objectstack-pin.mjs at main carries env -u OS_SKIP_DTS once (it carried it zero times at 1aa88519)

    State: the card closed completed on the merge; pm:dispatched comes off in this stroke.

  8. added a commit that references this issue on Oct 28, 2026
    74ebad0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions