Update README for delete-on-advance behavior and SUBMITTED_CHANNEL constant

This commit is contained in:
Adam Moussa 2026-04-20 19:07:30 -04:00
parent 840d36e8c8
commit bcc7ca2279

View file

@ -7,10 +7,12 @@ Slack reaction-driven expense approval router. Replaces the Pipedream `expenses_
A user reacts ✅ to a message in an expense channel. The bot: A user reacts ✅ to a message in an expense channel. The bot:
1. Maps the source channel to the next stage's channel. 1. Maps the source channel to the next stage's channel.
2. Copies the message text (stripped of any prior "react to advance" hint) into the next channel, with a permalink back to the original on the first advance. 2. Copies the message text (stripped of any prior "react to advance" hint) into the next channel. When advancing out of **Submitted**, the copy also gets a permalink back to the user's original message.
3. Replies in-thread on the original message with `➡️ Advanced to {Stage}`. 3. Depending on where we're advancing *from*:
- **From Submitted:** keeps the user's original message in place and posts a threaded `➡️ Advanced to {Stage}` reply. The Submitted channel is the permanent audit trail.
- **From Processed or Authorized:** deletes the old copy so each intermediate channel stays a clean "current work" queue.
Channel chain: Submitted → Processed → Authorized → Matched. Channel chain: Submitted → Processed → Authorized → Matched. The bot can only delete its own posts, which is why the Submitted original (a real user message) is preserved by design.
## Architecture ## Architecture
@ -49,7 +51,12 @@ Runtime: Python 3.12 on arm64, no third-party dependencies (stdlib `urllib` for
## Configuration ## Configuration
The channel → stage mapping lives in `src/processor/app.py` (`STAGES`). Update there if channels change. The "on first advance, include a permalink" check is keyed on the Processed-stage channel ID — update that too if the first-stage channel changes. Channel IDs live in `src/processor/app.py`:
- `SUBMITTED_CHANNEL` — the user-authored origin channel. Controls both the "include a permalink" behavior and the "preserve vs delete source" branch.
- `STAGES` — the full chain mapping each source channel to its `next` channel and human-readable `label`.
If the Submitted channel changes, update `SUBMITTED_CHANNEL` and the first key of `STAGES`. For any other stage change, update `STAGES` only.
## Manual testing ## Manual testing