Add Slack diligence workflow starter - #28
Conversation
544565f to
fc744bb
Compare
650242f to
9efa6e0
Compare
TheGreatAxios
left a comment
There was a problem hiding this comment.
code-review
Adds a Slack diligence starter: Tag with Company | URL, Exa/Firecrawl research → draft workflow, Slack snapshot card, and PDF upload via filesUploadV2.
Comment
-
starter/slack-diligence/src/pdf.ts:15-149— sync throw beforedocument.end()leaves the returned promise unsettledrenderDiligencePdfbuilds acompletepromise fromdocument.on("end"|"error"), then does sync PDFKit work and only then callsdocument.end(). If that sync work throws,completenever settles.session.tstreats PDF failure as soft-fail (still post the Slack card), but a hang defeats that path and leaves the thread inactiveforever.Could we wrap the sync render in try/catch and
reject(ordocument.end()in a finally after marking failure) soawait renderDiligencePdfalways settles?
Notes (non-blocking)
- Thread-id parsing in
slack-upload.tsmatches Chat SDKslack:CHANNEL:TS(parts.pop()twice) — verified against chat-sdk docs. cli.tsmatchesslack-fact-checkforsubscribeOnMention: false(noregisterSingleton/initialize); that is consistent for this shape.bun testfor package tests: 7 pass. (Untrackedtmp/critique-tests/from review probing not part of the PR.)
Checks
- Single commit subject ≤72, empty body:
Add Slack diligence workflow starter - Diff scope is
starter/slack-diligence/**only vsorigin/slack-internal-processing
TheGreatAxios
left a comment
There was a problem hiding this comment.
code-review (re-review)
No new commits since the prior review. Prior soft-fail note still applies; one license follow-up.
Comment
-
starter/slack-diligence/src/pdf.ts— sync throw beforedocument.end()can leave the returned promise unsettledStill true on tip
9efa6e0. Wrapping the sync render socompletealways settles keeps the session soft-fail path (Slack card without PDF) from hanging the thread. -
package.jsondeclares"license": "LGPL-2.1-only"Please drop the per-package
licensefield to match the repo-level MIT direction in #30.
Checks
- Diff vs
origin/slack-internal-processingis stillstarter/slack-diligence/**only - Thread-id parsing in
slack-upload.tsstill matches Chat SDKslack:CHANNEL:TS
Summary
starter/slack-diligence, a sourced Slack diligence snapshot workflowStack
This PR is intentionally stacked on #27 (
slack-internal-processing) and adds onlystarter/slack-diligenceon top of that branch.Verification
bun run typecheck(fromstarter/slack-diligence)bun test(7 passing)git diff --checkNo demo video, audio, narration, PDF renders, screenshots, or generated temporary artifacts are included.