docs: record mobile dashboard integration
This commit is contained in:
@@ -15,6 +15,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
- Integration task `20260901-integrate-leadership-dashboard-9e2b6c` for the leadership-dashboard product-definition correction.
|
||||
- Merge commit `029c8c6a59215cb6c3f8d7f126c4313730b2abb2` from feature task `20260902-registration-invalid-params-59f94692`, with canonical promotion by integration task `20260902-promote-password-flow-c81d42`, for non-empty-only password validation and removal of the first-login forced-password-change workflow.
|
||||
- Commit `63b387f` integrating feature commit `6e212b3` from task `20260902-dashboard-nice-scale-d8c31a` for independent dynamic ranking scales with readable headroom above each leading bar.
|
||||
- Commit `8dddd21` integrating feature commit `1ee89da` from task `20260902-dashboard-mobile-share-4e91c7` for the focused leadership shell, responsive phone/tablet layout, unified dashboard cards, and the business-facing merge of follow-up work into in-progress.
|
||||
- Integration task `20260902-dashboard-mobile-integration-e28c` for canonical reconciliation of the mobile leadership-dashboard behavior.
|
||||
|
||||
## Current Focus
|
||||
|
||||
@@ -33,6 +35,7 @@ Operate the current `0.5.163` extension baseline and the deployed fixed-scope ac
|
||||
- 2026-09-01: Reframed the leadership dashboard from instruction-history/audit presentation to a platform-running view across tasks, people, input, output, time, type, and completion, with clickable drill-through and no visible technical payload language.
|
||||
- 2026-09-02: Removed application-level password length limits and the first-login forced-password-change flow while preserving voluntary password changes, administrator resets, session revocation, roles, task ownership, and route authorization.
|
||||
- 2026-09-02: Changed the task-type and employee ranking bars from max-item normalization to independent readable dynamic scales, so the leading bar retains visible headroom while operation counts remain the only encoded length.
|
||||
- 2026-09-02: Adapted the authenticated leadership dashboard for direct phone and portrait-tablet use, retained the desktop overview, unified the first metric card with the remaining cards, and removed the separate visible “待跟进” category by presenting those internal states as “进行中”.
|
||||
|
||||
## In Progress
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# Task: Integrate mobile leadership dashboard
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260902-dashboard-mobile-integration-e28c
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: /Users/inmanx/Documents/lwltAPI
|
||||
- Base commit: 1b277cf3732a666a05993416a656237936ee181f
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Integrate verified feature commit `1ee89da` from task `20260902-dashboard-mobile-share-4e91c7` into `main`.
|
||||
- Reconcile the included prior card correction, mobile/portrait-tablet layout, focused leadership shell, and task-detail behavior against AUTH-001 and current dashboard rules.
|
||||
- Promote only the durable user-confirmed category rule and integrated source references into canonical project memory.
|
||||
- Run integration regression and project-document gates without deploying, restarting services, accessing ERP, or mutating runtime data.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Keep `/operations-dashboard` authenticated and limited to administrators and team leads. A focused standalone route does not mean an anonymous public link.
|
||||
- Preserve the aggregate-first, business-facing, read-only dashboard decision and all normal task ownership, mutation, artifact, audit, AgentBus, and ERP boundaries.
|
||||
- Treat source task records as read-only. Integration notes belong only to this task record; canonical changes are limited to `current-state.md` and the relevant leadership-dashboard business rule.
|
||||
- The previous card task's promotion candidate is semantically compatible with the consolidated feature commit and the user's explicit request: internal attention states remain intact but have no separate visible “待跟进” category.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Cherry-picked feature commit `1ee89da` as main commit `8dddd21` with no conflict.
|
||||
- Integrated the focused leadership shell, 320–920 px responsive behavior, mobile task cards, safe-area detail overlay, unified/accessible metric selected state, and regression coverage.
|
||||
- Recorded the source and behavior in `current-state.md`.
|
||||
- Updated the canonical dashboard business rule so internal attention/waiting states remain stored as before while the leadership view presents and filters them as “进行中”.
|
||||
- AUTH-001, architecture, API, authorization, ERP, release, deployment, and runtime-service behavior remain unchanged.
|
||||
|
||||
## Verification
|
||||
|
||||
- Source task verification reviewed: focused dashboard 4/4, repository hygiene 10/10, control-plane 153/153, legacy/platform 264/264, TypeScript check/build, four responsive browser viewports, interaction checks, and zero browser console errors.
|
||||
- Main repository hygiene: 10/10 passed.
|
||||
- Main TypeScript no-emit check: passed.
|
||||
- Main control-plane suite: 153/153 passed.
|
||||
- Main legacy and platform suite: 264/264 passed.
|
||||
- Main TypeScript build: passed.
|
||||
- `git diff --check`: passed.
|
||||
- `check_project_docs.py`: passed.
|
||||
- `check_doc_drift.py --task-id 20260902-dashboard-mobile-integration-e28c`: passed after canonical reconciliation.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- A normal authenticated runtime check with live control-plane data may be performed under a later runtime/deployment task; this integration does not restart or deploy the service.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. The accepted user-facing category rule and integrated source reference are reconciled directly in this Integration task.
|
||||
@@ -1,60 +0,0 @@
|
||||
# Task: Adapt leadership dashboard for mobile sharing
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260902-dashboard-mobile-share-4e91c7
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260902-dashboard-mobile-share-4e91c7-dashboard-mobile-share-4e91c7
|
||||
- Worktree: /Users/inmanx/Documents/lwltAPI-dashboard-mobile-share-4e91c7
|
||||
- Base commit: 63b387f67998410d02c2c3493c3e1b2ee8f2f108
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Carry the accepted dashboard card correction into this isolated task: unify the first operation-count card with the remaining metrics, keep the selected state clear, and fold the former follow-up state into in-progress.
|
||||
- Adapt `/operations-dashboard` for phone and portrait-tablet use without changing its leadership-only authorization boundary.
|
||||
- Make the route visually self-contained for direct sharing with leaders by removing unrelated operator navigation and technical status controls from the dashboard shell.
|
||||
- Replace the desktop-only task table interaction with a responsive mobile card presentation while preserving the same data, filters, pagination, and task-detail drill-through.
|
||||
- Add focused regression coverage and verify the real layout at phone, tablet, and desktop viewports.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- “Standalone sharing” means an authenticated, focused dashboard URL for administrators and team leads; it does not authorize an anonymous or public share link.
|
||||
- Preserve the existing dashboard API, business-facing terminology, ranking semantics, filter behavior, and dynamic nice-scale bars.
|
||||
- Keep every mobile control touch-friendly, avoid page-level horizontal overflow, respect device safe areas, and prevent the background dashboard from scrolling while the task-detail overlay is open.
|
||||
- Preserve all task, account, ERP, deployment, and runtime-data boundaries. Do not access ERP, restart services, mutate runtime data, or deploy this feature.
|
||||
- Do not alter business adaptation routes, schemas, mappings, extension sources, release artifacts, or canonical project memory from this Feature task.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Brought the prior dashboard card correction into the feature: all five metrics now share one treatment, the active filter uses a light-green selected state with `aria-pressed`, and no visible follow-up card or filter remains. Waiting-for-input work is counted and queried under in-progress.
|
||||
- Added a dedicated leadership header and return link, enabled `viewport-fit=cover`, and hid the main operator navigation, automation control, AI status, plugin status, and their popover on the dashboard route. Password and logout controls remain available.
|
||||
- Added a responsive layout through 920 px: a horizontally swipeable metric strip, one-column fixed-height rankings with larger touch targets, two-column filters, and compact safe-area-aware chrome that fits down to a 320 px viewport.
|
||||
- Converted task rows into labeled mobile cards without duplicating data or changing the desktop table. Each cell receives a semantic `data-label`; input and output remain visually distinct, and status stays visible at the card edge.
|
||||
- Made task details a safe-area-aware near-full-screen mobile dialog, froze background scrolling while it is open, and restored scrolling on close.
|
||||
- Preserved the desktop two-ranking layout, dynamic count scales, filters, pagination, detail drill-through, and leadership authorization. Updated static cache keys and their regression expectation.
|
||||
|
||||
## Verification
|
||||
|
||||
- `node --check LianSyn-platform/app.js`: passed.
|
||||
- Focused dashboard regression `LianSyn-platform/app-operations-dashboard.test.mjs`: 4/4 passed.
|
||||
- `node --test tools/repository-hygiene.test.mjs`: 10/10 passed.
|
||||
- TypeScript no-emit check: passed.
|
||||
- Control-plane suite: 153/153 passed.
|
||||
- Legacy and platform suite: 264/264 passed.
|
||||
- TypeScript build: passed.
|
||||
- `git diff --check`: passed.
|
||||
- Isolated non-persistent browser preview at `http://127.0.0.1:8893/operations-dashboard?mobile-preview=1` used the actual feature HTML, CSS, and JavaScript with business-safe mock data.
|
||||
- Visual checks passed at 320×740, 390×844, 768×1024, and 1440×900. Document, body, shell, dashboard page, and filter widths matched the viewport at 320, 390, and 768 px; only the intended metric strip had horizontal overflow.
|
||||
- Browser interaction verified metric selection rendering, filter layout, mobile task cards, task-detail open/close, background scroll locking, and desktop two-column rankings. Browser console error count was zero.
|
||||
- `check_project_docs.py`: passed.
|
||||
- `check_doc_drift.py --task-id 20260902-dashboard-mobile-share-4e91c7`: passed with only the owned task record under `.project-docs`.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Integrate this isolated feature commit before validating the normal authenticated `/operations-dashboard` route against live control-plane data. No deployment or public-link behavior is included in this task.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. This is a bounded responsive and presentation change within the accepted leadership-dashboard behavior.
|
||||
@@ -8,7 +8,7 @@
|
||||
- Passwords must be non-empty but have no application-level length restriction. First login and administrator password reset do not force a subsequent password change; users may still change passwords voluntarily, administrators may reset them, and password changes revoke existing sessions according to the account lifecycle contract.
|
||||
- Administrators always hold all 18 manual business routes. Team leads and ordinary users start with no task grants, require explicit administrator allowlists, and may use normal task APIs only for their own manual tasks.
|
||||
- A known ungranted route or a non-unique/unresolved route for a non-administrator fails before parsing, plugin dispatch, or ERP execution. Authorization is rechecked for supplemental input, attachments, confirmation, automatic confirmation, and browser claim.
|
||||
- Team leads may read all manual account work only through the platform-operations dashboard. The dashboard is aggregate-first across task, person, original input, final output, time, task type, and completion state, with business-facing drill-through. It is not an audit log and never renders technical payloads, internal identifiers, machine-shaped historical input, or technical failure text; this visibility does not grant cross-user task mutation, artifacts, SSE, global settings, audit administration, or AgentBus access.
|
||||
- Team leads may read all manual account work only through the platform-operations dashboard. The dashboard is aggregate-first across task, person, original input, final output, time, task type, and completion state, with business-facing drill-through. Internal attention or waiting-for-input states remain unchanged in task storage but are presented and filtered as “进行中”; the leadership view exposes no separate “待跟进” category. It is not an audit log and never renders technical payloads, internal identifiers, machine-shaped historical input, or technical failure text; this visibility does not grant cross-user task mutation, artifacts, SSE, global settings, audit administration, or AgentBus access.
|
||||
- Creator and input-turn attribution are durable, business inputs remain encrypted at rest, denial audit excludes plaintext, and routine task removal uses archive/restore rather than physical purge.
|
||||
- The two passenger-list import routes are Program-only and wait for exactly one `.xls` or `.xlsx` attachment before deterministic normalization.
|
||||
- A WeChat attachment card is transport placeholder text, not file content. Only a structured `payload.attachments[]` entry can resume a roster task; missing metadata fails before ingestion and leaves the original task in `awaiting_attachment` instead of creating a new task.
|
||||
|
||||
Reference in New Issue
Block a user