Commit Graph

978 Commits

Author SHA1 Message Date
luozhixiong
348ed2c30d test(im): resolve mention example placeholder 2026-08-01 16:10:23 +08:00
luozhixiong
de3c7ba733 test(im): use approved fixture domain 2026-07-31 17:51:43 +08:00
luozhixiong
928a3ca826 chore(im): trim review-only artifacts 2026-07-31 17:29:52 +08:00
luozhixiong
bfdd978519 fix(im): remove superseded helpers 2026-07-31 17:11:06 +08:00
luozhixiong
ac8c577553 fix(im): refine identity and mention help signals 2026-07-31 16:56:14 +08:00
luozhixiong
b6c34959b3 fix(im): expose defaulted identity and align help layout 2026-07-31 16:56:14 +08:00
luozhixiong
cbca00425c fix(im): close completion contract review gaps 2026-07-31 16:56:14 +08:00
luozhixiong
79bae0e50e test(im): align acceptance contract coverage 2026-07-31 16:56:14 +08:00
luozhixiong
eba176e731 docs(im): state conservative mention evidence 2026-07-31 16:56:14 +08:00
luozhixiong
4e5dcbc46c fix(im): make agent guidance task-scoped 2026-07-31 16:56:14 +08:00
luozhixiong
89f88a0186 chore(im): align agent guidance and coverage 2026-07-31 16:56:14 +08:00
luozhixiong
96363db795 fix(im): close read completeness gaps 2026-07-31 16:56:14 +08:00
luozhixiong
f195175b7d feat(im): add structured message mentions 2026-07-31 16:56:14 +08:00
luozhixiong
db2d68714b feat(im): require idempotent chat creation
BREAKING CHANGE: im +chat-create now requires --idempotency-key.
2026-07-31 16:56:13 +08:00
luozhixiong
dd6e8ca06b fix(im): close completion contract gaps 2026-07-31 16:20:28 +08:00
luozhixiong
3d9bb902cc refactor(im): make acceptance-only a first-class contract 2026-07-31 16:20:28 +08:00
luozhixiong
b13305111e fix(im): keep contract exemptions public-safe 2026-07-31 16:20:28 +08:00
luozhixiong
fd6b8d3934 chore(im): align help skills and contract coverage 2026-07-31 16:20:28 +08:00
luozhixiong
d639a390de feat(im): expose trustworthy completeness for IM reads 2026-07-31 16:20:28 +08:00
luozhixiong
fc30060ad1 feat(im): enforce trustworthy completion for IM writes 2026-07-31 16:20:28 +08:00
luozhixiong
43444330d9 docs(im): pin bot identity on image pre-upload examples 2026-07-31 16:20:28 +08:00
luozhixiong
d57a86c8d5 docs(im): pin explicit identity on every outbound example command 2026-07-31 16:20:28 +08:00
luozhixiong
9ede9ae15d fix(im): pin explicit identity on user-only examples and run them verbatim 2026-07-31 16:20:28 +08:00
luozhixiong
73190643d3 test(im): use the scanner-recognized test-secret placeholder inline 2026-07-31 16:20:28 +08:00
luozhixiong
bcef5110da test(im): route config secret through printf placeholder for content scan 2026-07-31 16:20:28 +08:00
luozhixiong
b61ba28dea test(im): lock example identity, run all examples, guard affordance drift 2026-07-31 16:20:28 +08:00
luozhixiong
6288d7255f docs(im): extend approval semantics to all outbound actions and card drafts 2026-07-31 16:20:27 +08:00
luozhixiong
2bbbfc69c6 fix(im): fail closed on media upload errors instead of rewriting content 2026-07-31 16:20:27 +08:00
luozhixiong
43b75d2071 docs(im): mention the user-id direct message form for plain text sends 2026-07-31 16:20:27 +08:00
luozhixiong
2ddf2b4a1e test(im): drop redundant loop variable copy and type error assertions 2026-07-31 16:20:27 +08:00
luozhixiong
38a68a9f26 docs(im): forbid downgrading reply intent to a new direct message 2026-07-31 16:20:27 +08:00
luozhixiong
c12df3ec6a docs(im): cover reply target in domain approval rule and tighten hint lock 2026-07-31 16:20:27 +08:00
luozhixiong
b90c1a95f5 docs(im): surface sending approval semantics in the domain skill 2026-07-31 16:20:27 +08:00
luozhixiong
9c3dca2b34 docs(im): require draft approval when message content is delegated 2026-07-31 16:20:27 +08:00
luozhixiong
9279155db2 fix(im): add id-source hint and strengthen example and recovery locks 2026-07-31 16:20:27 +08:00
luozhixiong
5d61ecf492 feat(im): extend Tips examples to feed and flag shortcuts 2026-07-31 16:20:27 +08:00
luozhixiong
392c64e3a3 docs(im): relax send confirmation gate for fully specified requests 2026-07-31 16:20:27 +08:00
luozhixiong
4de60dd66a fix(im): seed failure inventory with recovery hint fix and coverage updates
Replay the seeded IM failure cases. Most already give an agent enough signal to recover; deterministic search coverage requires stable fixtures, while the --head/--tail conflict lacked a concrete next action. Add the missing hint, record the inventory, and fold the search fixture prerequisite and dry-run coverage into coverage.md.
2026-07-31 16:20:27 +08:00
luozhixiong
aa39825b03 feat(im): add raw API affordance guidance for the im domain 2026-07-31 16:20:27 +08:00
luozhixiong
7cc7fcf90c feat(im): add copyable Tips examples to high-frequency IM shortcuts 2026-07-31 16:20:27 +08:00
zhouyue-bytedance
5cf09ecfda docs(base): clarify form and file operation routing (#2110)
* docs(base): clarify form and file operation routing

* docs: clarify complete base role table rules

* docs: clarify base advanced permission status

* docs: clarify base form field lifecycle

* docs: guide base form question creation

* fix(base): address form dry-run review findings

* docs(base): add complete editable role example

* fix(base): validate form question create inputs
2026-07-31 15:23:03 +08:00
chenxingyang1019
41692b7041 feat(apps): add cache debug commands (+cache-get/-delete/-clear) (#1896)
* feat(apps): add cache debug commands (+cache-get/-delete/-clear)

Add three apps-domain cache debug shortcuts for inspecting/clearing an app's
runtime cache:
- +cache-get: read a business key's value + metadata (hit/miss)
- +cache-delete: delete a single key (idempotent, write)
- +cache-clear: clear all cache in an environment (high-risk-write, --yes)

value renders raw on --format json, deserialized on --format pretty;
value_size_bytes is computed CLI-side; --environment auto-selects the branch
when omitted. Includes unit tests (hit/miss/dry-run/confirmation) and the
lark-apps cache skill reference.

* fix(apps): normalize cache numeric output fields and tidy comments

Follow-up hardening for the cache debug commands (+cache-get/-delete/-clear):

- Normalize ttl_ms / deleted_key_count via a new cacheInt() helper so
  --format json emits a stable JSON number (or null) regardless of whether
  the server sends the value as a number or a string. Aligns with the
  repo convention that numeric wire fields may arrive as strings; previously
  these were passed through raw, leaving the output type at the server's mercy.
- Add unit tests locking the string-wire -> JSON number contract for both
  cache-get ttl_ms and cache-delete deleted_key_count.
- Tidy two comments: soften cacheBool's speculative "historical wire form"
  claim to a defensive-tolerance note, and drop implementation jargon from
  cache-delete's risk-level rationale.
2026-07-31 14:13:56 +08:00
dc-bytedance
b79827d60a fix: drop stale target version from root upgrade prompt (#2100) 2026-07-31 12:45:43 +08:00
zhaojiaxing-coding
0f35676a28 feat(drive): extend permission shortcuts for Miaoda (#2070)
* feat(drive): support Miaoda apps in permission shortcuts

Extend Drive permission shortcuts to accept Miaoda page URLs and the apps resource type while keeping each endpoint's accepted resource contract explicit.

Key features:

- Infer apps from /page/ URLs and accept explicit --type=apps in +apply-permission, +member-add, +member-list, and +permission-get-setting

- Decouple secure-label target parsing so expanding apply-permission does not widen secure-label support

- Align skill guidance and unit/dry-run coverage with the new resource type

* test(drive): cover apps permission target validation

Add focused coverage for Miaoda apps target handling across apply-permission and secure-label boundaries.

Exercise malformed page URLs, explicit apps bare tokens, typed validation errors, and command-level rejection so future resource-type changes cannot silently widen unsupported secure-label behavior.

* fix(drive): parse permission markers from URL paths

Keep drive +apply-permission resource inference aligned with URL component boundaries. Parse and validate URL inputs before extracting tokens so query strings and fragments cannot redirect permission requests to a different resource.

Key fixes:

- Match document and apps markers only against the parsed URL path

- Reject malformed URLs with a typed --token validation error

- Cover /page/ markers found only in query strings or fragments

* docs(skills): redact Miaoda page token example

Replace the concrete Miaoda page token with a representative pagcn placeholder. This keeps the token shape recognizable while avoiding exposure of a real resource identifier in the skill documentation.

* fix(drive): harden permission target resolution

Make Drive shortcut targets unambiguous before they reach read or write API paths. URL inputs now bind to a recognized root path and a single validated token segment, preventing encoded separators, dot segments, and type conflicts from silently changing the addressed resource.

Key fixes:

- Reject non-root URLs, dot/traversal tokens, and URL/type conflicts for secure-label and permission-apply writes

- Keep permission-setting URL parsing and pretty output reversible for every supported command-local resource kind

- Add unit and dry-run E2E regressions plus aligned permission-apply guidance
2026-07-31 12:16:22 +08:00
wangweiming-01
946964e093 fix(drive): use title for default download filename (#2089) 2026-07-31 12:12:11 +08:00
HanShaoshuai-k
cfe76ad56a ci: add protected public domain allowlists (#2111)
Co-authored-by: HanShaoshuai-k <268785735+HanShaoshuai-k@users.noreply.github.com>
2026-07-31 11:02:04 +08:00
calendar-assistant
fa9c30c690 docs(calendar): confirm scope before editing recurring events (#2119)
Promote the recurring-event rule to a pre-routing gate so it is read
before the specific operation flow, and require confirming the scope
(this event / all / this-and-following) when the user is ambiguous
instead of defaulting to this-event-only. Removes the redundant and
conflicting "edit existing event" row that hard-coded the single-
instance default.
2026-07-30 21:59:08 +08:00
zcc
ba95252019 feat(drive): add comment-operation shortcuts (#1898)
Add comment-domain shortcuts: +batch-query-comments, +resolve-comment,
+restore-comment, +add-reply, +list-replies, +update-reply, +delete-reply
and +react-reply, sharing one target resolver with per-endpoint file_type
sets.

Flatten the comment reference docs by dropping the comments-guide routing
layer and folding its cross-command knowledge into the command refs:
comment-card model, comment/reply/interaction counting and sorting rules
into lark-drive-list-comments.md; the --solved-status prerequisite into
lark-drive-restore-comment.md; the apps exception into
lark-drive-add-comment.md. Comment intents now route straight from the
drive SKILL.md Shortcuts table to each command ref.

Cover the new shortcuts with unit tests, dry-run e2e and live workflow
e2e behind LARK_DRIVE_MD_COMMENT_E2E=1, and register them in
tests/cli_e2e/drive/coverage.md.
2026-07-30 21:53:21 +08:00
zhouyue-bytedance
4a16139348 fix(base): resolve Base URL block types accurately (#2099)
* fix: resolve Base URL block types accurately

* fix: resolve Base block selection from Wiki URLs

* fix(base): guide resolved folder and docx blocks

* fix(base): avoid field fallback for untyped URL blocks

* docs(base): specify URL example fence language

* test(base): cover unmatched URL block resolution
2026-07-30 20:29:47 +08:00
BD-ZERO
6e5308af01 feat: add SXSD schema validation to Slides lint (#2103)
- add XSD-backed SXSD validation for tags, attributes, structure, scalar values, and namespaces
- preserve supported server-filled fields and readback namespace compatibility
- isolate SXSD failures by slide so valid slides continue through layout checks
- improve actionable lint diagnostics and suppress duplicate errors
- add regression coverage for schema validation and Slides readback cases

Validated with unit tests and real Slides create/readback round trips.
2026-07-30 20:04:53 +08:00