Skip to content

Develop - #88

Merged
bladehell-ai merged 6 commits into
mainfrom
develop
Aug 21, 2026
Merged

Develop#88
bladehell-ai merged 6 commits into
mainfrom
develop

Conversation

@bladehell-ai

Copy link
Copy Markdown
Collaborator

No description provided.

abdulhaseeb-qa and others added 6 commits August 21, 2026 15:53
…osition field

- Employee detail modal with view/edit modes, 6 tabs (info, personal, emergency, documents, leave, notes)
- Multi-file document upload with drag-and-drop, per-file titles, shared category
- Leave history now filtered per-employee (added user_id filter to backend + frontend)
- Position field changed from dropdown to manual text input (job_title on users table)
- Name/email editable in employee profile (saved to users table with uniqueness check)
- Added notice_period_days and work_location columns to employee_profiles
- Invitation flow with Name field, role label formatting, avatar color consistency
- Dashboard, projects, time entries, and navigation UI improvements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two changes to .gitignore.

**marketing/** gained the same build-output block every other app already has.
`marketing/tsconfig.tsbuildinfo` — a 98KB incremental TypeScript artifact — had
been sitting untracked in the working tree; `.vercel` is included because the
marketing site deploys from there and the directory holds project linkage, not
source.

**scripts/** is broadened from the `prod-*` prefix (added in #84) to the whole
directory. The prefix only caught files someone remembered to name correctly. A
directory-wide rule inverts the default: a new script is out unless it is added
deliberately with `git add -f`, which is the right way round for a folder whose
contents are one-off work against live production data.

Already-tracked scripts are unaffected — an ignore rule never untracks a file —
so scripts/deploy.sh and scripts/scan-for-malware.sh stay in the repo exactly as
they are. Verified with `git check-ignore`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Frontend (TypeScript):
- Add missing `role` field to EmployeeListItem mock fixtures in
  EmployeeCard and EmployeeSelect tests.
- Drop the non-existent `task.name` fallback on the time entries page;
  the task type only carries `title`.

Backend (PHP 8.4):
- InvitationController::store() now validates `name` as required before
  anything else, so every test posting to /api/v1/invitations returned
  422 before reaching the behaviour under assertion — including the
  seat-limit case that expects 402. Add `name` to each payload.
- phpunit.xml forces CACHE_STORE=array, which backs the throttle
  middleware and lives for the whole PHPUnit process, so login hit
  counters survived RefreshDatabase and leaked across tests. With auth
  capped at 10/min, any suite logging in more than ten times exhausted
  the limit and later assertions came back 429. Flush the cache in
  TestCase::setUp(). No test asserts on 429, so nothing depended on the
  leak.

Full suite: 827 passed, 0 failed. tsc --noEmit clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…output-and-scripts

chore: ignore marketing build output and the whole scripts/ working area
fix: employee modal redesign, multi-file upload, leave history, and p…
@bladehell-ai
bladehell-ai merged commit 39e5355 into main Aug 21, 2026
9 checks passed
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.

2 participants