Dashboard › cli › Distillation
48e12d5e-ed84-4028-b684-f150820a5b92["lore_tm_v1__NpamYUM2RnJx2Cfvw2ZvCHTK3L6EgXt9p5grOhJVUA","lore_tm_v1_BUgoogj90wdE5Q5Itq77jHc-GLUKc6UBpABF1In23lo","lore_tm_v1_B5fQ-ycx6JbbIotsGsY0QjC-AmZwA4EksOOsKC21l5I","lore_tm_v1_qSEzjFtshrKk57VK4k8MkqoW8sops9yk8_616EDD1lo","lore_tm_v1_BORo641qGrgO_PmkShBBfzKztEo3A9F-_7YmN_HUkbQ"]
Date: Sep 10, 2026
AGENTS.md mandates loading repo-setup before situation skills. Skills live under .agents/skills/, are generated from canonical skills/ by scripts/sync-skills.mjs.AGENTS.md defines the agent pipeline as triage β explore β plan β implement β review β ship; worker is a deprecated alias of implement. Operator turns labeled New operator chat or Operator guidance: skip triage and should be treated directly as the task.AGENTS.md defines model assignments: triage/plan/review heavy uses primary Jared with Claude Opus 4.8; triage/plan/review light uses primary Jared with xAI Grok 4.3; explore uses OpenAI gpt-5-mini; implement uses Moonshot kimi-k2.7-code; ship uses xAI Grok (grok-build-0.1)..lore.md when present, and target repositories require reading their AGENTS.md / CONTRIBUTING.md first.sentry api: preserve rawApiRequest() status text; empty textual non-2xx bodies must produce an HTTP status/request fallback; JSON mode must expose {status, statusText, body} so empty success and error responses remain distinguishable; successful binary Uint8Array values bypass formatters and remain raw; binary errors emit only status/content-type/byte-count summaries and never bytes or JSON coercion; prompts must never block scripted runs or interleave with stdout JSON.strip --strip-unneeded yields 99 MiB, reducing raw size by 17 MiB and compressed size by 4 MiB; strip is built into fossilize 0.7.0 and runs on the copied binary before postject injection; after strip+SEA+binpunch the binary is approximately 108 MiB raw / 30 MiB gzip versus 125 MiB / 34 MiB unstripped..rodata is 52.5 MB, including an approximately 12 MB V8 snapshot and approximately 28 MB full-ICU data. UPX reaches 25 MiB but was rejected because it destroys ELF notes; --with-intl=small-icu could save approximately 26β28 MiB; --without-lief breaks SEA; --without-sqlite breaks the CLI; --disable-single-executable-application breaks everything. A custom build was deferred due to poor cost/benefit: approximately 3.5 hours versus 5 minutes for fossilize.--version takes approximately 1.0s versus Bunβs approximately 1.9s; completions take approximately 150ms versus Bunβs approximately 180ms.applyPatch() in bspatch.ts always computes SHA-256 inline and returns it; there must be no separate verification step.bspatch.ts design: TRDIFF10 has a 32-byte header containing magic, controlLen, diffLen, and newSize, with lengths/sizes encoded as i64 little-endian. The control block is fully decompressed with zstdDecompressSync because it needs random access; diff and extra blocks stream through createZstdStreamReader using Node Transform β Web ReadableStream β BufferedStreamReader.bspatch.ts resource behavior: loadOldBinary() copies the old binary to a temporary path with COPYFILE_FICLONE for a CoW reflink, falling back to a regular copy, then reads it into memory; cleanupPatchResources() executes every cleanup step despite earlier failures; write errors are captured early with writer.on('error') to prevent ERR_UNHANDLED_ERROR on ENOSPC/EIO.script/check-stale-references.ts behavior: read packageManager from package.json (example pnpm@10.11.0), dynamically derive stale package managers, and scan developer-facing docs/scripts for stale <pm> run, <pm> remove, <pm> add -d, requires <pm>, and <pm> installed references. Exclusions are user-facing global-install fenced blocks containing install -g/add -g, the checker itself, and node_modules/. The check is included in the CI lint job.script/check-stale-references.ts must remain generic: after a pnpm-to-yarn migration, changing packageManager in package.json should automatically flag all pnpm run references without manual pattern updates. The script must exclude itself because its own JSDoc examples otherwise cause false positives.buildIssueListCollapse() in src/commands/issue/list.ts always starts with ['filtered','unhandled'], then conditionally adds 'lifetime' and finally 'stats'.LIFETIME_FIELDS = new Set(['count','userCount','firstSeen','lastSeen']); these fields are stripped by collapse=lifetime on the list endpoint. In buildListApiOptions(json, fields), collapseLifetime is true only when json && fields !== undefined && fields.length > 0 && !fields.some(f => LIFETIME_FIELDS.has(f)). Human output never collapses lifetime.ISSUE_DETAIL_COLLAPSE safely includes 'lifetime' because the detail endpoint preserves top-level fields. IssueViewOutputSchema in src/types/sentry.ts extends SentryIssueSchema with event, org, replayIds, and trace, which are added by jsonTransformIssueView; view.ts wires it through schema: IssueViewOutputSchema. count, userCount, firstSeen, and lastSeen are always present for issue view, but may be absent from issue list when collapse=lifetime is active.generateProjectStructure() in generate-docs-sections.ts always use the βββ prefix, regardless of position, because standalone entries always follow groups.generateProjectStructure() behavior: standalone entries include help.ts, which is manually added before sorting; the last standalone uses βββ and other standalones use βββ; groups and standalones are each alphabetically sorted within their respective sections; output is a fenced code block containing the cli/ tree.SelfCell<ByteView<'static>, di::Archive<'static>> for ownership without reparsing. The derived_from_cell! macro uses std::mem::transmute plus SelfCell::from_raw to clone the owner, allowing objects() to return owned Object cells sharing the same ByteView. PR #991βs Rc<Vec<u8>> plus reparse approach was closed in favor of PR #992.Object getters are debugId, codeId, arch, fileFormat, kind, hasSymbols, hasDebugInfo, hasUnwindInfo, and hasSources; Archive methods are new(data), peek(data)->Option<String>, fileFormat, objectCount, and objects()->Result<Vec<ObjectFile>>. The Rust struct is named Object but exported as ObjectFile using #[wasm_bindgen(js_name = "ObjectFile")].