Agents for Humans: deadline checks, privacy previews, and reviewable patches
What I changed in StudyPilot, ScamShield, and Dependency Sentinel after reviewing the decisions people have to make around a Strands agent.
StudyPilot could show enough study time across a whole week even when an assignment was due before most of those hours. That was the first problem I addressed in this pass across my three Agents for Humans projects.
I'm building StudyPilot for students planning coursework, ScamShield for people reviewing suspicious messages, and Dependency Sentinel for developers reviewing a Python dependency upgrade. I use Codex for implementation and tests. Each app has a different decision to support, so I wanted the interfaces to make those decisions easier to inspect.
A week can fit while a deadline does not
StudyPilot now checks available time before each confirmed deadline. It adds up all coursework due by that point and subtracts protected commitments from the available windows. Later hours do not count toward an earlier deadline.
For example, a 90-minute task due at 6 p.m. cannot use a study window from 7 to 10 p.m. The planner now shows the 90-minute gap next to that deadline and points back to the available-hours section. The browser stops that request before sending it for AI planning. The backend repeats the necessary capacity check before asking the advisor for an ordering.
Passing this check does not guarantee a schedule. Short fragments and task ordering still matter. The scheduler continues to check individual sessions, and the student still approves the calendar proposal. Unknown dates stay unscheduled until confirmed.
Let people inspect the masking
ScamShield already masked detected details before saving a case or requesting model advice. I added a preview so the person pasting a message can inspect that transformation first.
“Preview what AI will see” sends the input to the application's server for masking. It does not call the model or create a saved case. The preview uses the same masking function as the message passed to the advisor. It shows the masked sender, message and sender-confirmation context as plain text; message links remain inert.
Editing the source clears the preview. A late response for an older version is discarded, so it cannot appear to describe the edited message. The preview also remains available after the hosted AI allowance is used.
Automatic redaction can miss information. Names and wording can remain identifying. The preview helps people inspect what will be shared; it does not make arbitrary sensitive messages safe to submit.
A passed flag needs command evidence
In Dependency Sentinel, I found a display case where a saved passed flag could look successful without a recorded exit code. The interface now requires complete successful command results before enabling approval. Missing exit codes, empty results, timeouts and failed commands do not become a green success label because the log happens to contain the word “passed.”
The review also brings the captured Git revision, proposed file list and validation scope into one section. Developers can open the command output and inspect the recorded patch fingerprint. The server's existing checks compare the saved patch, test evidence and approval record before accepting an approval or producing an export.
These are consistency checks on a saved record, not signed security attestations. Tests cover the included test suite, not every possible behavior. The public build reviews only its included repository; the local build is for code the developer trusts. A Git worktree is not a security sandbox for untrusted code.
Where AWS and Strands fit
The applications use React and FastAPI on a shared Amazon EC2 host. The model-advice path invokes each project's Amazon Bedrock AgentCore runtime through IAM. Strands runs the agent there, using Groq for model inference. Provider credentials are held in AWS Secrets Manager rather than shipped to the browser.
The new deadline checks, redaction preview and review display do not need extra model calls. Strands still handles advisory work inside each workflow. Scheduling constraints, saved records, explicit approvals and exports remain application responsibilities.
Regression tests cover the corrections: hours after a deadline cannot cover the deficit; previewing cannot call an advisor or save a case; editing cannot leave an outdated preview; and incomplete command results cannot enable patch approval. Local fixture tests are separate from proof that a hosted model call works.
The repos include setup instructions and the existing architecture diagrams:
If you try the planner, give a task an early deadline and put its available hours later in the week. Then move the study window before the deadline. That correction should be visible before you ask the agent to plan anything.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article