This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
[handoff] repo:objectui PM seat — board state and standing doctrine as of 2026-08-16 ~02:15Z #4754
Copy link
Copy link
Closed
Labels
Description
Handoff from the outgoing repo:objectui PM seat (session session_01RnQd8iMMUwXQEV1crFmQiQ), wrapped up on the maintainer's instruction (quota). The incoming seat should treat this card as the starting index; everything below is verifiable on GitHub and supersedes nothing — cards and their comment threads remain the source of truth.
Board state (all verified at wrap-up)
pm:queue/ findings pool / in-flight devs: all ZERO. No PR is awaiting review, flip, or closeout. No dev worktree carries unpushed work owed to any card.- Session-day ledger: 63 PRs merged, zero red merges, zero wrongful closes (fix(app-shell,data-objectstack): system view override rows no longer masquerade as saved views #4713 … fix(components,i18n): translate the config panel footer's Save / Discard #4753). Every closed card's
closed_by_pull_requestswas verified exact at closeout. - Self-armed timers from the outgoing session: all fired or deleted; none pending.
Decision box — 10 items awaiting the maintainer, with dispatch plans pre-recorded
| item | ask | seat's recommendation / plan on ruling |
|---|---|---|
| #4648 GA pin decision | biggest unlock | Rec A (reasoned exemptions). Ruling unlocks #4639, #4190, #6275, #4535-item-4, #4668 — dispatch in dependency order |
| #4692 combo drill | A/B/C | Rec B; decision-box comment on card |
| #4676 placeholder | A/B/C/D | Rec C |
| #4662 engine.* two-locale posture | A/B | Rec A (record posture; then one docs card) |
#4730 console.objectView.* 116 keys |
delete vs missing-feature | On A: fold into a final trim batch together with the deferred key-level trims (search/table/report/form, ~40 keys — deliberately NOT dispatched separately). On B: file the feature card |
| #4085 / objectstack#8593 / #4036-A | standing | unchanged |
| #4655 "Version Packages" | ⛔ | NEVER merge/queue/auto-merge — maintainer's click only |
| #8830 (objectstack lane) | ⛔ | objectstack lane will open its PR; final merge is the maintainer's click. This seat only files issues to objectstack — never claims or dispatches there |
Archived findings with re-grade triggers (event-driven, do not patrol)
- [finding] ForgotPasswordForm's {email} marker match is substring-based — a stray legacy {{email}} in a caller-supplied label produces stray braces around the address, not a graceful fallback #4716 ForgotPasswordForm marker substring — ruled A (leave); triggers on an external consumer report or any touch of that marker logic.
- Address part order follows the reader's locale because nothing carries the address's own country #4738 address order follows reader locale — triggers on demand signal; any
countryCodechannel is an upstream spec question (file to objectstack, don't dispatch). - components:
ConfigPanelRenderer'sundoLabel/redoLabeldefault to English — dormant today, and #4750 records the opposite #4752 ConfigPanelRenderer undo/redo English defaults — dormant; triggers when a caller wiresonUndo/onRedoorcommon.undo/common.redoappears.
Standing doctrine this seat accumulated (each learned the hard way; details in the linked threads)
- No skip-changeset mechanism: the label exists in the registry but no gate consumes it — never apply it (three corrected incidents 2026-08-15; root cause filed as objectstack#8915; also objectstack#8891 for publish-preflight).
- objectstack findings are file-only from this seat — never claim/dispatch cross-lane.
- Landing flow: ACCEPT (reviewer-of-record, verified against GitHub not the report) → six gates (Lint + Type Check + Test shards 1-4) success pinned at the PR head →
draft:false→ auto-merge → merged event → closeout (closed_byexact, strippm:dispatched). - Deletion-class PRs: PM independently re-tests every reference face on
origin/mainbefore ACCEPT, commands re-run from the PR body. - Absence-claim discipline: never conclude absence from a truncated listing (
head -N) or an unverified scope (bad pathspec) — every absence claim needs a positive control first (two corrected PM errors on 2026-08-15, on the record in PR fix(fields,i18n): translate AddressField sub-labels, drop US placeholders, localize read-only part order #4740/chore(i18n): delete the deadconfigPanel.*andrenderer.*namespaces from the ten packs (#4746) #4747 reviews). - Hot-file serial queue: same-file cards dispatch serially (e.g.
ListView.convertFilterGroupToASTdrops a freshIs null/Is not nullrow as incomplete, so the list filter silently applies nothing #4744 after PR fix(components,fields,plugin-list): withhold exists/notExists from the consumers whose dialects cannot express them #4745); ten-pack edits in different namespaces may run in parallel with rebase-on-conflict instruction. - Test invocation: repo-root path-filter form only (
pnpm exec vitest run packages/<pkg>/);pnpm --filter <pkg> testis the documented false-green cwd trap, mechanically blocked. - Umbrella cards (
Part of #NNNN+Fixes #<sub-card>): verify the umbrella stays open at closeout. - i18n: repo-wide single-brace convention (
{{x}}only i18next holes with args); key-choice by measurement (reuse when packs agree 10/10, author new when scoped spellings diverge — PR fix(components,i18n): translate the config panel footer's Save / Discard #4753 models it); value-to-key lookup tables blind BOTH i18n gates — use literalt()builders (PR fix(plugin-dashboard,i18n): translate the dashboard config sidebar (#4748) #4751 models it). - Known flake classes (chart-drill, plugin-dashboard families) were closed at source 2026-08-15; a red shard should still be judged flake-vs-real before rerun, with the criterion recorded first.
Ops notes
- All agents share the GitHub identity
yinlianghui— a claim is assign plus a claim comment with the claiming session's ID and branch; re-read comments before writing code. - The shared account rate-limits under load: back off and retry; a 502 is retryable.
- Issue comments do not generate wake events (only PR subscriptions do) — decision-box rulings are found by patrol reads (
list_issueswithlabels=needs-user-decision, compareupdated_at), not by waiting.
Activity
os-support-ai commentedon Aug 18, 2026
Triage: closing completed — this handoff index has been consumed. The incoming
repo:objectuiseat has been active since 2026-08-16 (current seat post: objectstack#6025), the board state described here is long superseded (the card itself says cards remain the source of truth), and the still-live items each have their own open, labeled cards: decision-box entries carryneeds-user-decision, the re-grade-trigger findings were converted topm:on-holdwithRestart-when:lines today (#4716, #4738, #4752, #4695). Standing doctrine that deserves permanence belongs in the seat post or a skills PR, not an open finding. The record stays readable here.Generated by Claude Code