fix(partners): keep empty cells when converting Slack markdown tables#679
Merged
Merged
Conversation
Blank cells were dropped by a truthiness filter, so columns disappeared from the Slack rendering.
…able-cells # Conflicts: # deeptutor/partners/helpers.py
pancacake
added a commit
that referenced
this pull request
Jul 24, 2026
#679/#682/#683 each fixed markdown-table cell handling in one channel, but Slack (convert_markdown_table_to_labeled_rows) and Telegram (_render_table_box) still split rows with str.strip("|"), which collapses leading/trailing empty cells and shifts every column — only Feishu (#683) had the correct split. Extract split_markdown_table_row as the single primitive and route Slack, Telegram, and Feishu through it: fixes the same class of bug in all three and removes three near-duplicate row splitters. Slack's separator-row detection now reuses is_markdown_table_separator_row instead of an ad-hoc regex. Also fixes the #679 helpers-import ordering and formats the #679/#683 test files that squash-merge did not run through ruff format.
pancacake
added a commit
that referenced
this pull request
Jul 24, 2026
Same-day maintenance follow-up to v1.5.3, focused on how chat feels. - Chat responsiveness: the post-answer "generating" stall is gone (DONE carries the persisted message ids so the frontend reconciles in place instead of refetching the session), turn events flush in one transaction (#678), the streaming autoscroll stops forcing per-frame layouts, and Enter during streaming no longer fires an interleaved message (#674). - Partners: markdown-table row splitting unified across channels — empty cells survive Slack (#679) and Feishu (#683) tables, and empty rows are no longer misread as header separators (#682). - LLM-output parsing: <think> reasoning tags stripped before parsing (#675), adjacent JSON values no longer break Deep Research extraction (#680), and the parser returns the longest decodable value instead of the first prefix (#692). - Assorted: streaming quiz cards stay scoped to their own turn (#677), the create-KB form survives the background indexing poll (#691), and Math Animator reads ms as milliseconds, not minutes (#681). - Typing: SQLite session store add_message accepts str parents to match SessionStoreProtocol (PocketBase record ids). Release notes: assets/releases/ver1-5-4.md
vaskoyudha
added a commit
to vaskoyudha/deeptutor-for-programmer-fork
that referenced
this pull request
Jul 25, 2026
…HKUDS#679) Blank cells were dropped by a truthiness filter, so columns disappeared from the Slack rendering. Co-authored-by: Bingxi Zhao (Frank) <13051345080@163.com>
vaskoyudha
added a commit
to vaskoyudha/deeptutor-for-programmer-fork
that referenced
this pull request
Jul 25, 2026
HKUDS#679/HKUDS#682/HKUDS#683 each fixed markdown-table cell handling in one channel, but Slack (convert_markdown_table_to_labeled_rows) and Telegram (_render_table_box) still split rows with str.strip("|"), which collapses leading/trailing empty cells and shifts every column — only Feishu (HKUDS#683) had the correct split. Extract split_markdown_table_row as the single primitive and route Slack, Telegram, and Feishu through it: fixes the same class of bug in all three and removes three near-duplicate row splitters. Slack's separator-row detection now reuses is_markdown_table_separator_row instead of an ad-hoc regex. Also fixes the HKUDS#679 helpers-import ordering and formats the HKUDS#679/HKUDS#683 test files that squash-merge did not run through ruff format.
vaskoyudha
added a commit
to vaskoyudha/deeptutor-for-programmer-fork
that referenced
this pull request
Jul 25, 2026
Same-day maintenance follow-up to v1.5.3, focused on how chat feels. - Chat responsiveness: the post-answer "generating" stall is gone (DONE carries the persisted message ids so the frontend reconciles in place instead of refetching the session), turn events flush in one transaction (HKUDS#678), the streaming autoscroll stops forcing per-frame layouts, and Enter during streaming no longer fires an interleaved message (HKUDS#674). - Partners: markdown-table row splitting unified across channels — empty cells survive Slack (HKUDS#679) and Feishu (HKUDS#683) tables, and empty rows are no longer misread as header separators (HKUDS#682). - LLM-output parsing: <think> reasoning tags stripped before parsing (HKUDS#675), adjacent JSON values no longer break Deep Research extraction (HKUDS#680), and the parser returns the longest decodable value instead of the first prefix (HKUDS#692). - Assorted: streaming quiz cards stay scoped to their own turn (HKUDS#677), the create-KB form survives the background indexing poll (HKUDS#691), and Math Animator reads ms as milliseconds, not minutes (HKUDS#681). - Typing: SQLite session store add_message accepts str parents to match SessionStoreProtocol (PocketBase record ids). Release notes: assets/releases/ver1-5-4.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Blank cells in markdown tables were dropped when rendering for Slack, so a Score column with an empty value disappeared from the message.
Repro: convert a table row like
| Alice | | ok |and the Score label is missing.Keep empty cells in the labeled-row conversion and pad short rows to the header width.