Repository navigation
Remove explicit pnpm version from workflows to fix version conflict - #7
Merged
Merged
Conversation
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update action workflow file for improvements
Remove explicit pnpm version from workflows to fix version conflict
Jan 18, 2026
huangyiirene
marked this pull request as ready for review
January 18, 2026 10:56
This was referenced May 25, 2026
xuyushun441-sys
added a commit
that referenced
this pull request
Jun 3, 2026
…d read-only permission allowlist (#1555) AGENTS.md: - Drop the stale ".github/copilot-instructions.md mirror" instruction — that file doesn't exist, and Copilot (coding agent + CLI, since Aug 2025) reads AGENTS.md natively. Single source of truth for all agents. - Multi-agent discipline: prefer one git worktree per agent/task for physical isolation; frame the defensive rules as the shared-working-tree fallback. - Add rule #7: merge only after remote CI is green, never `gh pr merge --auto` (#1475 — auto-merge can land a red PR on shared main). .claude/settings.json (new, committed/shared): - Read-only permission allowlist derived from recent transcript usage, so parallel agents prompt less. Browser/preview observation tools (screenshot/snapshot/logs/network/list) + `agent-browser snapshot|skills`. - Deliberately excludes mutating/arbitrary-exec calls (preview_eval, click, fill, start/stop, pnpm, node, npx) and anything Claude Code already auto-allows (git/gh read-only, grep, cat, ls, …). Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
xuyushun441-sys
added a commit
that referenced
this pull request
Jun 13, 2026
#1821) Small models (e.g. claude-haiku) sometimes answered a "draw a bar chart" request with a markdown TABLE — running query_data/aggregate_data and formatting the numbers — instead of calling visualize_data. This was a tool-selection problem, not a capability gap: the chart preference was buried as guideline #7 and competed with guideline #4 ("format with markdown tables"). - data-explorer-skill.ts: add a prominent "Choosing the right tool" section ABOVE the guidelines — chart intent (incl. CN terms 图表/柱状图/折线图/饼图/画图) → MUST call visualize_data; never substitute a table; reconcile the table-formatting guideline; fix duplicate guideline numbering. - visualize-data.tool.ts: strengthen the tool description to be imperative ("the ONLY tool that draws a chart… you MUST call this, not a table; if you already fetched the numbers, still call visualize_data to render them"). Prompt-only tuning — no behavior/contract change. Raises the likelihood the model reaches for visualize_data on a plain chart request without an explicit "use visualize_data" nudge. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 15, 2026
os-zhuang
added a commit
that referenced
this pull request
Jun 28, 2026
…ta-protocol name; no rename) (#2431) Per maintainer decision: keep the already-published `@objectstack/metadata-protocol` package name. Renaming churns downstream for ~0 benefit. The `protocol` suffix is a deliberate, low-cost naming exception — the real contract lives in `@objectstack/spec/api`, not the impl package. - D10: replace the "rename → metadata-runtime" clause with "name retained; content converges to the metadata-management impl". - Open Question #7: resolved (keep the name; README note to clarify impl-vs-contract). - Status: rev.8; notes D9 step-1 (interface segmentation) shipped in #2429. Docs only; empty changeset. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
7 tasks
This was referenced Jul 24, 2026
os-zhuang
added a commit
that referenced
this pull request
Jul 27, 2026
…ions (#3563 PR-2) (#3571) Closes the largest gap in the #3563 route audit: the whole /actions domain — the documented way to expose custom server-side operations (engine.registerAction) — had no SDK expression at all, so every console hand-rolled fetch for it. - client.actions.invoke(object, action, { recordId, params }) — POST /api/v1/actions/:object/:action. recordId travels in the body, which both server URL shapes honor. The path is fixed (not discovery-routed): actions is not in ApiRoutesSchema, same precedent as projects' /api/v1/cloud. - client.actions.invokeGlobal(action, opts) — the wildcard /actions/global/:action shape. - The handler's own business failure surfaces as { success:false, error } (the dispatcher's inner envelope), deliberately not thrown, so callers can toast it. Unit tests cover URL shape, encoding, body defaults, the global variant, and the inner-failure path. Ledger: all three /actions rows flip to sdk; the gap ratchet drops 27 → 24 — first real exercise of the PR-1 guard. Documentation stops lying (audit findings): - client README: the six phantom methods are gone (meta.getObject, views.share, views.setDefault, workflow.approve/reject, ai.chat — replaced with the real calls where one exists), and the hand-written "all 13 namespaces / FULLY COMPLIANT" claims now defer to the CI-enforced ledger. - CLIENT_SPEC_COMPLIANCE.md: retired to a tombstone. Its verdict was measured against DEFAULT_DISPATCHER_ROUTES — a table nothing in runtime consumes, missing five of the domains it should have been measuring. - content/docs/api/client-sdk.mdx: documents the new actions surface; the automation row now reflects the real method count. Pre-existing, untouched: the bare `tsc -p` TS2741 (routeMap missing graphql) reproduces identically on main — its root is the stale graphql entry in ApiRoutesSchema, tracked as audit follow-up #7 (spec-major territory). Verified: client 122 passed (5 new), runtime 653 passed, both ledger guard halves green, eslint clean. Claude-Session: https://claude.ai/code/session_01LX9ut3MK3KykE11S9bJmv5 Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Jul 29, 2026
fix(spec,rest): enforce the batch-size cap, and give each bulk endpoint one Zod source (#3939)
#3944
Merged
This was referenced Oct 20, 2026
This was referenced Oct 23, 2026
os-tesla
pushed a commit
that referenced
this pull request
Oct 25, 2026
…-empty body (objectui#13386) (#13483) <!-- claude-projects-attribution: {"github_login":"os-elon-musk"} --> _Requested by **Elon** · [project thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9D3jMyxwR7kHLu9j9TjYFimf)_ Fixes #13386 Fixes #12618 Seat: domain:ui#4 · card thread `session_01AqaieDWuDnBRyh3u8epGx6` · claim 6391455338 Ruling-ref: 6369306878 (batch #7 item 4, letter C) Clause-②: no · Metadata-protocol: semantic (the spec side landed as #25612) ## What changes Ruling C: in read-only mode an all-empty section that the page keeps draws its heading plus ONE "Show N empty fields" row, the same toggle a partly-filled section uses, instead of one em-dash row per field. Edit mode is unchanged, and a body whose sections are all empty folds once more (item 2 of #12618). | Where | Before | After | |---|---|---| | `DetailSection`, all-empty section kept (`hideEmpty: false`, or omitted where no default resolves it), read-only | heading + one `No value` row per field | heading + one "Show N empty fields" row; the toggle reveals the rows and "Hide empty fields" folds them back | | same, edit mode | every field an editable row | unchanged | | same, print page | every row prints | unchanged: every row prints, no toggle (#12717) | | `hideEmpty: true` all-empty section | renders nothing | unchanged | | partly-filled section | heuristic fold (#7129 Q2-C) | unchanged | | detail body (`DetailView` sections) where every section is empty and at least two are kept | one folded section after another | ONE "Show N empty fields" row for the body (new `EmptySectionsFold`); revealing it draws each section folded on its own | No key, shape or default moved, and no new i18n key: both rows reuse `detail.showEmptyFields` / `detail.hideEmptyFields`. The `hideEmpty` descriptions in `@object-ui/types` (`DetailViewSection`, `RecordDetailsSection`, the zod mirror) and the two `@object-ui/plugin-detail` registration texts now say what a kept section draws. ## Readings taken (for the seat's review) 1. **"Kept" includes an omitted key where no default resolves it.** The ruling names `hideEmpty: false`. On `detail-view`, the `detail-section` node and the `record:details` direct-`fields` fallback, omitted already meant the same as `false` (keep), and their descriptions said so. The fold keeps them equal, so the test is "kept" (`!hideAllEmptySection`), not `=== false`. On `record:details` authored sections nothing changes for an omitted key: it still resolves `?? true` and hides. 2. **Copy.** The ruling's 「N 个空字段 · 展开」 is described as "the same fold the mixed sections use", so the row is that fold's existing copy: `Show 4 empty fields` (en), `显示 4 个空字段` (zh). No new string. 3. **Body fold threshold.** The body folds only when every section that draws anything is all-empty AND at least two are kept: one kept section is already one row, so folding it again would only drop its heading. Section groups (`sectionGroups`) turn the body fold off, as they draw fields of their own beside the sections. A malformed section (no field array, or a read that throws) turns it off too, so each section still renders or fails inside its own boundary (#8497). ## Tests - New: `packages/plugin-detail/src/__tests__/DetailSection.allEmptyFold-13386.test.tsx` — the 「交易说明」 fixture: heading + one "Show 4 empty fields" row and no em-dash; reveal and fold back; untitled section; `hideEmpty: true` control; edit mode draws four textboxes and no fold; print page prints four rows; mixed sections (small and large) unchanged; body fold counts 8 over three sections, reveals each section folded, folds back; controls for a filled field anywhere, a single kept section, edit mode and print page; `emptySectionsFoldCount` rules including malformed sections. - Reverse check: with `DetailSection.tsx` at base, 6 of the new file's cases go red (the edit-mode, print, mixed and count cases stay green, as they pin unchanged behaviour). - Updated pins that read an all-empty kept section's rows, now through the fold: `record-details.hideEmptyRetired-7129` 4/4(b), `record-details.emptySectionDefault` (`false` keeps; direct-`fields` fallback), `detailSectionAuthoredHideEmpty-10485`, the AMPLIFICATION cases of `DetailSection.emptyArray-8474` and `DetailSection.emptinessAuthority-8376` (now: the fold counts all four rows, so the empty value is not counted as filled), `inlineCredentialGate` (`signature`'s empty sample reveals the fold before reading the pencil), `record-details.unresolvedIdentityFailClosed-9054` (the legacy `fieldName` entry survives as "Show 1 empty field"). ## Verification (local) - `pnpm exec vitest run packages/plugin-detail/ packages/types/` — green after the pin updates (the first full run surfaced the six pins above; their files re-run green: 132 passed). - `pnpm --filter @object-ui/plugin-detail type-check`, `pnpm --filter @object-ui/types type-check` — clean. - `pnpm --filter @object-ui/plugin-detail lint` — 0 errors. - `check:new-line-citations` 0 new · `check:doc-json` · `check:doc-fences` · `check:control-bytes` · `check:i18n-keys` · `check-changeset-presence` — pass. - `node scripts/check-governed-queue-guard.mjs --test <diff>` — NOT GOVERNED. - NOT MEASURED: `check:doc-snippets` / `check:doc-examples` (need the whole build; CI runs them). NOT MEASURED: screenshots of the HotCRM opportunity record at 1280 px (#12618 acceptance 2), reason: no HotCRM console stack in this container; the 「交易说明」 case is pinned in the DOM test above. ## Acceptance notes - The `hideEmpty` describe text on the installed spec pin still carries the pre-#25612 wording; the next pin move picks up the ruled text. Nothing here reads that prose. - [x] Adds no product-specific widget, dialog, hook or string (see AGENTS.md › Product-neutral renderer) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01AqaieDWuDnBRyh3u8epGx6 --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Oct 26, 2026
Closed
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.
The CI workflow failed because
pnpm/action-setup@v4detected conflicting versions:version: 10in the workflow config vs"packageManager": "pnpm@10.28.0"in package.json.Changes
version: 10frompnpm/action-setup@v4in both CI and release workflowspackageManagerfield (10.28.0)Reference: https://github.com/objectstack-ai/spec/actions/runs/21110164385/job/60707559636#step:4:1
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.