René's URL Explorer Experiment


Title: feat(cli): relative-time flags on generated commands' unix-seconds timestamps by ysyneu · Pull Request #47 · flashcatcloud/flashduty-cli · GitHub

Open Graph Title: feat(cli): relative-time flags on generated commands' unix-seconds timestamps by ysyneu · Pull Request #47 · flashcatcloud/flashduty-cli

X Title: feat(cli): relative-time flags on generated commands' unix-seconds timestamps by ysyneu · Pull Request #47 · flashcatcloud/flashduty-cli

Description: What Generated CLI commands forced raw unix integers on their time flags, while curated commands (incident list --since/--until) accepted ergonomic relative time (7d, now, dates). This closes that inconsistency — part of the generated-as-single-source convergence (Phase 2, after #46's generic table renderer). Every unix-SECONDS timestamp flag on a generated command now accepts: a duration — 7d, 24h (= now minus that) +7d for the future now a date / datetime / RFC3339 raw unix seconds (back-compatible — the old int form still works) …parsed at runtime via timeutil.Parse, the exact logic curated commands already use. How The generator (internal/cmd/cligen) detects unix-seconds timestamp fields and emits a string flag + a genParseTimeFlag pre-parse instead of an int flag. Detection is deliberately precise so it never corrupts a non-timestamp int: Field kind Example Treated as Why unix-seconds timestamp start_time, end_time, start, end, *_at_*_seconds relative-time string a point in time millisecond timestamp RUM/sourcemap/webhook start_time stays int64 Parse yields seconds → 1000× wrong duration delay_seconds, seconds_to_ack stays int64 a count of seconds, not a point in time Beyond the description-keyword signal (unix/epoch + second), two name conventions catch fields the spec under-documents — eliminating asymmetric start/end pairs: bare start/end window boundaries (schedule list --start was prose-only) the _at_*_seconds convention (close_at_seconds, created_at_start_seconds, created_at_end_seconds) — the _at_ point-in-time marker is what distinguishes these from a delay_seconds-style duration. Help stays consistent: both the cobra flag usage and the Long "Request fields" block render these as string + the accepted-forms hint. Verification go build/vet/test ./... green; gofumpt clean; new unit tests for the detector (incl. ms/duration exclusions + the deficient-field cases) and the runtime parse helper. Live testback E2E: incident post-mortem-list --created-at-start-seconds 30d --created-at-end-seconds now and insight account --start-time 7d --end-time now return data; raw-unix still works; invalid values error cleanly client-side (invalid --start: ...). Full e2e suite (-tags=e2e) vs base: zero new failures (138 pass / 27 pre-existing env fails / 6 skip — same set as base).

Open Graph Description: What Generated CLI commands forced raw unix integers on their time flags, while curated commands (incident list --since/--until) accepted ergonomic relative time (7d, now, dates). This closes that ...

X Description: What Generated CLI commands forced raw unix integers on their time flags, while curated commands (incident list --since/--until) accepted ergonomic relative time (7d, now, dates). This closes that ...

Opengraph URL: https://github.com/flashcatcloud/flashduty-cli/pull/47

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:9e4324f4-9043-1e86-ee29-bf3079fd7dde
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9502:323A96:160EE0B:201C033:6A4E4936
html-safe-nonce659038d0eb20fd7ca75855ca972cccffaeee5f43da9aa5ec4883a5cffa3bea8f
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NTAyOjMyM0E5NjoxNjBFRTBCOjIwMUMwMzM6NkE0RTQ5MzYiLCJ2aXNpdG9yX2lkIjoiMzg5MjQwNTM5NDcyMzQ1NzMzNCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacb0a960381b7beb9edf1f9d5b67d5cdc2fbc0d1d6f92fa770918ce0ca28efb714
hovercard-subject-tagpull_request:3866477355
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/flashcatcloud/flashduty-cli/pull/47/files
twitter:imagehttps://avatars.githubusercontent.com/u/9045284?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/9045284?s=400&v=4
og:image:altWhat Generated CLI commands forced raw unix integers on their time flags, while curated commands (incident list --since/--until) accepted ergonomic relative time (7d, now, dates). This closes that ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/flashcatcloud/flashduty-cli git https://github.com/flashcatcloud/flashduty-cli.git
octolytics-dimension-user_id90465697
octolytics-dimension-user_loginflashcatcloud
octolytics-dimension-repository_id1209147161
octolytics-dimension-repository_nwoflashcatcloud/flashduty-cli
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1209147161
octolytics-dimension-repository_network_root_nwoflashcatcloud/flashduty-cli
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasee8506f6d0538364886e3f0153c154c410965e70d
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/flashcatcloud/flashduty-cli/pull/47/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fflashcatcloud%2Fflashduty-cli%2Fpull%2F47%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fflashcatcloud%2Fflashduty-cli%2Fpull%2F47%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=flashcatcloud%2Fflashduty-cli
Reloadhttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
Reloadhttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
Reloadhttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
flashcatcloud https://github.com/flashcatcloud
flashduty-clihttps://github.com/flashcatcloud/flashduty-cli
Notifications https://github.com/login?return_to=%2Fflashcatcloud%2Fflashduty-cli
Fork 2 https://github.com/login?return_to=%2Fflashcatcloud%2Fflashduty-cli
Star 4 https://github.com/login?return_to=%2Fflashcatcloud%2Fflashduty-cli
Code https://github.com/flashcatcloud/flashduty-cli
Issues 0 https://github.com/flashcatcloud/flashduty-cli/issues
Pull requests 0 https://github.com/flashcatcloud/flashduty-cli/pulls
Actions https://github.com/flashcatcloud/flashduty-cli/actions
Projects https://github.com/flashcatcloud/flashduty-cli/projects
Security and quality 0 https://github.com/flashcatcloud/flashduty-cli/security
Insights https://github.com/flashcatcloud/flashduty-cli/pulse
Code https://github.com/flashcatcloud/flashduty-cli
Issues https://github.com/flashcatcloud/flashduty-cli/issues
Pull requests https://github.com/flashcatcloud/flashduty-cli/pulls
Actions https://github.com/flashcatcloud/flashduty-cli/actions
Projects https://github.com/flashcatcloud/flashduty-cli/projects
Security and quality https://github.com/flashcatcloud/flashduty-cli/security
Insights https://github.com/flashcatcloud/flashduty-cli/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fflashcatcloud%2Fflashduty-cli%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fflashcatcloud%2Fflashduty-cli%2Fissues%2Fnew%2Fchoose
ysyneuhttps://github.com/ysyneu
feat/ai-srehttps://github.com/flashcatcloud/flashduty-cli/tree/feat/ai-sre
feat/generated-relative-timehttps://github.com/flashcatcloud/flashduty-cli/tree/feat/generated-relative-time
Conversation 1 https://github.com/flashcatcloud/flashduty-cli/pull/47
Commits 3 https://github.com/flashcatcloud/flashduty-cli/pull/47/commits
Checks 12 https://github.com/flashcatcloud/flashduty-cli/pull/47/checks
Files changed https://github.com/flashcatcloud/flashduty-cli/pull/47/files
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
feat(cli): relative-time flags on generated commands' unix-seconds timestamps https://github.com/flashcatcloud/flashduty-cli/pull/47/files#top
Show all changes 3 commits https://github.com/flashcatcloud/flashduty-cli/pull/47/files
7564fae feat(cli): relative-time flags on generated commands' unix-seconds ti… ysyneu Jun 15, 2026 https://github.com/flashcatcloud/flashduty-cli/pull/47/commits/7564fae24da6a2740f996ddfb5594e821a3e40af
ad87b26 fix(cli): shell-safe single-quoting of generated --data examples ysyneu Jun 15, 2026 https://github.com/flashcatcloud/flashduty-cli/pull/47/commits/ad87b26056011c72b96d6bfca1d2cc3415cbca9c
8b69361 Merge remote-tracking branch 'origin/feat/ai-sre' into feat/generated… ysyneu Jun 15, 2026 https://github.com/flashcatcloud/flashduty-cli/pull/47/commits/8b6936154b8c74a15fe58c2f3bb25714cd5cd7d6
Clear filters https://github.com/flashcatcloud/flashduty-cli/pull/47/files
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
gen_support.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
gen_time_test.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-e00360f8a74a73e33ec552e44e01c71de7d5adaa87965a7461846a6cf06da378
zz_generated_alerts.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-2af0b23a1a6b47c99624dddaedb5a9860bb3c3752b9f0c599a4774859ae994f8
zz_generated_analytics.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-72338810bc90790f8c1309458cece701ab92f5f2ab7e9c8a45c940ede2e6127e
zz_generated_audit_logs.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-584ab8d037cb3efef70a60642d21e711c0bc1baf48ebad02fd5308a488715669
zz_generated_changes.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-9acc54a588c82a02747f967b3f59e9259c4ed921314fffa90a9578ba4758b8f4
zz_generated_diagnostics.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-d74ab97cc9494dce8ccf8cddf8a9ab4d9ce3147b8d613368e78f6f6de173f5a0
zz_generated_incidents.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-c94f867c7d847f66900d6a3fe11e69ecff21eae4d6b2489f657f46c057cba6f2
zz_generated_schedules.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-84b6bdc5b2277a1b751dba5c8c9150564365ce216420284f618d34b09c9468bf
zz_generated_status_pages.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-7ce3c6dd8d26cd3f0a298a97877b6bc3778331e678854985e45193b75eb532d3
main.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-185d72d8ec60f8dbd524f6616e48dc40b132c9aec02cfde66e1c128f40068d62
reltime_test.go https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-403358260754c26f2b041495f323579fa13507073c40f01712b275ac40b9e0cd
internal/cli/gen_support.gohttps://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
View file https://github.com/flashcatcloud/flashduty-cli/blob/8b6936154b8c74a15fe58c2f3bb25714cd5cd7d6/internal/cli/gen_support.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/flashcatcloud/flashduty-cli/pull/47/{{ revealButtonHref }}
https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
https://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-34ac7ff49df4b19094d4abb371a6867fdbe29347ef089ee2e850a3377c9e0805
internal/cli/gen_time_test.gohttps://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-e00360f8a74a73e33ec552e44e01c71de7d5adaa87965a7461846a6cf06da378
View file https://github.com/flashcatcloud/flashduty-cli/blob/8b6936154b8c74a15fe58c2f3bb25714cd5cd7d6/internal/cli/gen_time_test.go
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/flashcatcloud/flashduty-cli/pull/47/{{ revealButtonHref }}
internal/cli/zz_generated_alerts.gohttps://github.com/flashcatcloud/flashduty-cli/pull/47/files#diff-2af0b23a1a6b47c99624dddaedb5a9860bb3c3752b9f0c599a4774859ae994f8
View file https://github.com/flashcatcloud/flashduty-cli/blob/8b6936154b8c74a15fe58c2f3bb25714cd5cd7d6/internal/cli/zz_generated_alerts.go
Open in desktop https://desktop.github.com
how customized files appear on GitHubhttps://docs.github.com/github/administering-a-repository/customizing-how-changed-files-appear-on-github
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
Please reload this pagehttps://github.com/flashcatcloud/flashduty-cli/pull/47/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.