Skip to content

PR4 — outstandings UI and screen split - #141

Open
lamemustafa wants to merge 5 commits into
tapish-codex/b5-read-transport-harnessfrom
feat/outstandings-ui
Open

PR4 — outstandings UI and screen split#141
lamemustafa wants to merge 5 commits into
tapish-codex/b5-read-transport-harnessfrom
feat/outstandings-ui

Conversation

@lamemustafa

Copy link
Copy Markdown
Owner

Stacked on refactor/drop-superseded-crates — review only this PR's own diff.

Local gate green at this level: workspace tests and clippy in both feature configurations, fmt, tools tests, live-read boundary, fixture byte integrity, licence inventory, tsc, production build, and the workflow-consistency gate.

CI is NOT proven: the GitHub-hosted Windows and bundle-smoke jobs have never run, and one read-transport harness test fails deterministically on macOS with an unknown ubuntu outcome.

@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 8c4ad81 to 4efa8f6 Compare August 14, 2026 05:30
@lamemustafa
lamemustafa changed the base branch from refactor/drop-superseded-crates to tapish-codex/b5-read-transport-harness August 14, 2026 05:30
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 4efa8f6 to a3a4641 Compare August 14, 2026 07:21
@lamemustafa
lamemustafa marked this pull request as ready for review August 14, 2026 09:46

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a3a46416e4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/AllClientsScreen.tsx
Comment thread src/OutstandingsScreen.tsx Outdated
Comment thread src/OutstandingsScreen.tsx
Comment thread src/DocumentsScreen.tsx
Comment thread src/main.tsx
Comment thread src/AllClientsScreen.tsx
Comment thread src/AllClientsScreen.tsx
Comment thread src/main.tsx
Comment thread src/main.tsx
Comment thread src/OutstandingsScreen.tsx
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from a3a4641 to 0d45e05 Compare August 15, 2026 05:42

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d45e051ec

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/AllClientsScreen.tsx
Comment thread src/AllClientsScreen.tsx
Comment thread docs/tally/compatibility/compatibility-surface.json Outdated
Comment thread src/OutstandingsScreen.tsx
Comment thread src/OutstandingsScreen.tsx
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 0d45e05 to 22a378a Compare August 16, 2026 06:48

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 22a378a4e0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/main.tsx
Comment thread src/OutstandingsScreen.tsx Outdated
Comment thread src/OutstandingsScreen.tsx
Comment thread src/OutstandingsScreen.tsx
Comment thread src/styles.css
Comment thread src/OutstandingsScreen.tsx
Comment thread src/OutstandingsScreen.tsx
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 22a378a to 646a7c0 Compare August 17, 2026 14:37

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 646a7c0191

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/AllClientsScreen.tsx
Comment thread src/OutstandingsScreen.tsx
Comment thread src/AllClientsScreen.tsx
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 646a7c0 to 26fbac2 Compare August 17, 2026 18:16

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 26fbac25aa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/AllClientsScreen.tsx
company: company.name,
expected_company_guid: company.guid,
})),
currency_assertion: "INR",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Verify every book before asserting INR

When any open client book uses a non-INR base currency, this batch unconditionally asserts INR and consequently renders that book's balances with a rupee symbol. Unlike the single-company flow in OutstandingsScreen.tsx:155-170, neither this screen nor fetch_tally_outstandings_all_companies detects each company's currency before accepting the assertion, so mixed-currency firms receive materially misstated comparison figures. Detect and validate currency per company, returning a typed partial result for books that cannot establish INR.

AGENTS.md reference: AGENTS.md:L110-L118

Useful? React with 👍 / 👎.

@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 26fbac2 to 90d235e Compare August 17, 2026 21:20

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 90d235e3df

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +168 to +170
.catch(() => {
if (!cancelled) setCurrencyCheck("undetermined");
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep currency-probe failures in-band

When detect_tally_base_currency rejects because of a transport failure, unstable paired read, or GUID/book drift, this catch converts the error into the same undetermined state used for a valid non-INR result. The screen then offers “This company uses INR”; accepting it starts fetch_tally_outstandings with an asserted INR value, so a transiently failed probe can let a foreign-currency book be rendered with rupee symbols. Preserve the typed probe error and withhold the confirmation/read until the failure is resolved.

AGENTS.md reference: AGENTS.md:L110-L118

Useful? React with 👍 / 👎.

@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from 90d235e to ac22662 Compare August 17, 2026 23:52

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ac22662e9a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

/// rows this screen already holds from `fetch_tally_outstandings` -- Bridge
/// never reads Tally a second time to produce a statement.
async function exportPartyStatement(result: InrCompleteResult, party: string) {
return invoke<string>("export_party_statement", {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Register the party-statement export command

When a native outstandings result exposes expandable party rows, clicking Statement always rejects because export_party_statement has no Rust implementation and is not registered in src-tauri/src/lib.rs (a repository-wide search finds only this frontend invocation). Consequently, the newly presented statement action can never generate its claimed .xlsx file; implement and register the command or remove the action.

Useful? React with 👍 / 👎.

A null statement age is now rendered as not due; zero continues to mean due today. This preserves the native unaged distinction for operators.
Represent CSV text and numeric cells as distinct types. Prefix text values beginning with =, +, -, @, tab, or carriage return with an apostrophe before applying CSV quoting, while leaving raw amount and count cells numeric for downstream spreadsheet calculations.

The measured =BVL Zeta Formula party is covered alongside every active prefix. Mutation proof: removing = from the active-prefix set made the focused test fail with exit 1, returning the unneutralized party name; after restoration all 3 CSV tests and the 42-test frontend build passed with exit 0.

Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Signed-off-by: Tapish Khandelwal <tapishkhandelwal13@gmail.com>
Carry the PR4 UI surface over the F4X BILLREF presentation disclosure. Claims, evidence, and trusted-evidence keys remain byte-identical to the preserved PR4 head.

Compatibility gate: exit 0, unknown_claims=11, evidenced_claims=0. Claims/evidence/trusted identity checks: exit 0.
@lamemustafa
lamemustafa force-pushed the feat/outstandings-ui branch from ac22662 to 12ad095 Compare August 18, 2026 04:21

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 12ad095adb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/DocumentsScreen.tsx
Comment on lines +82 to +84
const [documentPaths, setDocumentPaths] = React.useState<SelectedDocumentPath[]>([]);
const [documentScan, setDocumentScan] = React.useState<ScanDocumentsResponse | null>(null);
const [documentSync, setDocumentSync] = React.useState<SyncDocumentsResponse | null>(null);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve document work across AXAL navigation

When an operator selects or scans files and then follows the screen’s instruction to check the AXAL workspace in the separate AXAL view, DocumentsScreen unmounts and these newly local states are discarded. Returning to Documents therefore loses every picker authorization, scan result, and sync summary—forcing the operator to reselect and potentially re-hash thousands of files—whereas the pre-extraction App-owned state survived this required cross-view workflow. Keep this state above the routed screen, or otherwise preserve it while navigating to AXAL and explicitly revoke abandoned authorizations.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant